Участие в разработке

Everything you can't fit into other forums
  • Добрый день.
    plastictown wrote:Планирую писать на си (какой бы он ни был:-)
    На сколько я знаю для Колибри компилируются программы с помощью C-- и Borland C++ 5.5.1.
    На C-- пишутся многие программы и он вроде-бы работает в самой Колибри. Администратор группы ВК (если имеется ввиду Leency, Кирилл) пишет программы на C--, думаю у него можно узнать более детальную информацию по работе с этим компилятором.
    На Borland C++ есть пример компиляции программы life2. Этот компилятор не портирован в Колибри и наверное потому широкого распространения не получил. Хотя там очень интересный подход используется при компиляции. Сначала программа компилируется в ассемблерный код для TASM. Потом этот код преобразуется в код для fasm. Далее с помощью fasm компилируется исполняемый файл. Т.е. через Borland сначала получается ассемблерный код.
    Last edited by IgorA on Wed Nov 04, 2020 11:40 am, edited 1 time in total.
  • Да, я пытаюсь использовать tcc, могу собрать пока только пустой main(), потому что просто не могу понять, как собрать api целиком в виде заголовочников и библиотек, если таковой существует. Как-то все в виде отдельных ссылок на форуме. А Borland.. не хотелось бы кросс-компилить, очень неудобно перемещать бинарники, тем более, что на моей машине ОС нормально не запустилась, только на виртуалбоксе. Обидно просидеть до трех часов и не сделать вообще ничего полезного:)
    This library provide an easy interface to the black magic...
  • работает в бесплатном vmware player, переношу через .flp (подключается в VMW) с помощью winimage 4.0
    еще можно через USB-флешку

    неудобно - нужно переподключать образ после изменений

    С сейчас живой в 3х вариантах - gcc5.4+newlib, gcc + djgpp lib, tcc (единственный нативный-но примитивный)
    1й и 3й вариант имеют АПИ в виде kos32sys?.h

    C-- это другой диалект (ниже уровнем чем С), но на нем написано больше всего

    все есть на форуме
  • Siemargl wrote: еще можно через USB-флешку
    Сделал загрузку с флешки в виртуалбоксе - в принципе нормально, не страшнее кросс-компиляции каким-нибудь linaro.
    Siemargl wrote: C-- это другой диалект (ниже уровнем чем С), но на нем написано больше всего
    Мне leency, я полагаю, дал сегодня вектор в этом направлении, после прочтения доки по C-- остался один вопрос: там как-то хитро написано, что можно вроде бы собирать файлы obj, но использовать их нельзя, но можно использовать библиотеки, собранные на других языках. Правильно ли я понял?
    Siemargl wrote: все есть на форуме
    Жуткая фраза:) Тем не менее, я собрал программку, которая даже запускается:) А нормально ли, что консольная программа после завершения не закрывается? я ее взял из примеров.
    This library provide an easy interface to the black magic...
  • можно загружать .obj COFF формата со спец.заголовком сисфункцией

    чтобы закрыть консольное окно,нужно в конце программы вызвать функцию консоли con_exit как то так (удобно, если при ошибке окно с сообщением осталось)
  • Siemargl wrote: чтобы закрыть консольное окно,нужно в конце программы вызвать функцию консоли con_exit как то так (удобно, если при ошибке окно с сообщением осталось)
    В примере так и сделано.

    Code: Select all

    con_exit stdcall (0);
    ExitProcess();
    
    На окне появляется надпись FINISHED и оно остается. Зато я научился создавать файл:)
    Хотя там странное дело Написано в доке на сисколл, что функция не работает для CD. Если CD - это текущая директория, то она работает, а если нет, тогда непонятно что такое CD:)
    Я подумал, а не имеет ли смысла привести сигнатуры функций для c-- к posix-ным или так специально задумано? Тем более непонятно, что передавать в буфер, если я хочу просто создать пустой файл.
    Еще интересно, нет ли документации на функции для c--? Просто по исходникам далеко не все очевидно, хотя бы какие нужно загружыть библиотеки для какой функции.
    Я наверное не в ту ветку пишу все это:)
  • plastictown wrote:
    Siemargl wrote: чтобы закрыть консольное окно,нужно в конце программы вызвать функцию консоли con_exit как то так (удобно, если при ошибке окно с сообщением осталось)
    В примере так и сделано.

    Code: Select all

    con_exit stdcall (0);
    ExitProcess();
    
    На окне появляется надпись FINISHED и оно остается. Зато я научился создавать файл:)
    Хотя там странное дело Написано в доке на сисколл, что функция не работает для CD. Если CD - это текущая директория, то она работает, а если нет, тогда непонятно что такое CD:)
    Я подумал, а не имеет ли смысла привести сигнатуры функций для c-- к posix-ным или так специально задумано? Тем более непонятно, что передавать в буфер, если я хочу просто создать пустой файл.
    Еще интересно, нет ли документации на функции для c--? Просто по исходникам далеко не все очевидно, хотя бы какие нужно загружыть библиотеки для какой функции.
    Я наверное не в ту ветку пишу все это:)
    чтобы закрылось, надо con_exit (1)
    http://websvn.kolibrios.org/filedetails ... ole_en.txt
    рядом есть и дока на русском

    непонятно про какой сисколл, но CD это компакт-диск, вероятно
  • Siemargl wrote: чтобы закрылось, надо con_exit (1)
    http://websvn.kolibrios.org/filedetails ... ole_en.txt
    рядом есть и дока на русском
    непонятно про какой сисколл, но CD это компакт-диск, вероятно
    Я имел в виду 70 функцию. Про этот CD даже в голову не пришло. Наверное, скоро их совсем не станет.(
    За доки спасибо! Очень удобные.

    Дело за малым: придумать, чего же я такого полезного хочу сделать.-)))
    This library provide an easy interface to the black magic...
  • plastictown wrote: Дело за малым: придумать, чего же я такого полезного хочу сделать.-)))
    Для примера: ты можешь реализовать конвертер величин (секунды в минуты, минуты в часы, гигабайты в байты, километры в метры и т.д.). На мой взгляд такая программа полезная и не сильно сложная, для начала самая подходящая задача. Это только как пример того, что ты можешь сделать.

    P.S. Чтобы полученные навыки работы с файлами зря не пропали, можно сохранять результат в файл или обрабатывать несколько значений из одного файла, сохраняя результат конвертации во второй.
  • theonlymirage wrote: Для примера: ты можешь реализовать конвертер величин (секунды в минуты, минуты в часы, гигабайты в байты, километры в метры и т.д.). На мой взгляд такая программа полезная и не сильно сложная, для начала самая подходящая задача. Это только как пример того, что ты можешь сделать.

    P.S. Чтобы полученные навыки работы с файлами зря не пропали, можно сохранять результат в файл или обрабатывать несколько значений из одного файла, сохраняя результат конвертации во второй.
    У меня родилась чуть другая идея. Думаю попробовать портировать на cmm libconfig или libjson-c и сделать автогенерацию интерфейса на основе текстового файла. Мне кажется, это хорошая идея.
    This library provide an easy interface to the black magic...
  • ...эге-кхе-кхе...портировать Scintilla...кхе-хе...
  • Pathoswithin wrote:...эге-кхе-кхе...портировать Scintilla...кхе-хе...
    Не совсем понятно, что имеется в виду. Если это совет, то это слишком сложная работа при таком скудном наборе инструментов и библиотек, а вот генерация окна с элементами управления на основе текстового файла - на мой взгляд, может сильно ускорить разработку диалоговых окошек, хотя и поведение их придется расписывать так же. Плюс к тому - libconfig в принципе очень удобная штука. Юзал ее для генерации дерева элементов в 2D движке на OpenGL. Как минимум удобнее xml и не так громоздко выглядит.
    This library provide an easy interface to the black magic...
  • plastictown wrote: У меня родилась чуть другая идея. Думаю попробовать портировать на cmm libconfig или libjson-c и сделать автогенерацию интерфейса на основе текстового файла. Мне кажется, это хорошая идея.
    Просто портировать, пусть на Си и остаются.
    to infinity and beyond
  • Who is online

    Users browsing this forum: No registered users and 12 guests