Разработка из под Windows

High-level languages programming questions
  • Ты пока не пиши ничего свое, а лучше пробуй скомпилировать примеры из SDK колибри. Получиться или неполучится, в любом случае отпиши сюда снова о результатах.

    См. тему viewtopic.php?f=24&t=1587

    SDK тут http://builds.kolibrios.org/eng/data/contrib/sdk/ и тут http://websvn.kolibrios.org/listing.php ... sources%2F&

    Статья о настройке компиляторов тут http://kolibri-n.org/inf/hll/hll.php
    Last edited by Wildwest on Tue Oct 14, 2014 8:41 pm, edited 2 times in total.
  • При таких условиях viewtopic.php?p=43001#p43001 - способ, требующий минимального количества настроек.
    Сделаем мир лучше!
  • При таких условиях viewtopic.php?p=43001#p43001 - способ, требующий минимального количества настроек.
    Компилирую проект Test, который создался с помощью генератора. Пишет вот такое:
    Spoiler:1>------ Построение начато: проект: test, Конфигурация: Release Win32 ------
    1>LINK : error LNK2001: неразрешенный внешний символ "_fakeEntry"
    1>test.obj : error LNK2001: неразрешенный внешний символ ""void __cdecl kos_WriteTextToWindow(unsigned short,unsigned short,unsigned char,unsigned int,char const *,unsigned int)" (?kos_WriteTextToWindow@@YAXGGEIPBDI@Z)"
    1>test.obj : error LNK2001: неразрешенный внешний символ ""bool __cdecl kos_GetKey(unsigned char &)" (?kos_GetKey@@YA_NAAE@Z)"
    1>test.obj : error LNK2001: неразрешенный внешний символ ""void __cdecl kos_WindowRedrawStatus(unsigned int)" (?kos_WindowRedrawStatus@@YAXI@Z)"
    1>test.obj : error LNK2001: неразрешенный внешний символ ""void __cdecl kos_DefineAndDrawWindow(unsigned short,unsigned short,unsigned short,unsigned short,unsigned char,unsigned int,unsigned char,unsigned int,unsigned int)" (?kos_DefineAndDrawWindow@@YAXGGGGEIEII@Z)"
    1>test.obj : error LNK2001: неразрешенный внешний символ ""unsigned int __cdecl kos_WaitForEvent(void)" (?kos_WaitForEvent@@YAIXZ)"
    1>test.obj : error LNK2001: неразрешенный внешний символ ""void __cdecl kos_ExitApp(void)" (?kos_ExitApp@@YAXXZ)"
    1>D:\kos\template\test\Release\test.exe : fatal error LNK1120: 7 неразрешенных внешних элементов
    ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
    Чудеса случаются! Это вам любой программист скажет! :)
  • Генератор создаёт solution с двумя проектами, программой и библиотекой. Для работы нужны оба проекта, не нужно было удалять smalllibc после генерации.
    Сделаем мир лучше!
  • CleverMouse wrote:Генератор создаёт solution с двумя проектами, программой и библиотекой. Для работы нужны оба проекта, не нужно было удалять smalllibc после генерации.
    Ура!!! Всё скомпилировалось! В папке Release появился файлик test.exe.

    Теперь буду пробовать его перенести через виртуальную машину на Kolibri
    Чудеса случаются! Это вам любой программист скажет! :)
  • test.exe - промежуточный файл, который не загрузится. В папке Release рядом с test.exe ещё должен появиться файл test без расширения, под Колибри запускать нужно его.
    Сделаем мир лучше!
  • Ага, и такой есть!
    Только теперь другая проблема появилась :shock:
    VMWare пишет: "Host USB device connections disabled" и не могу переопределить флешку на виртуальную машину
    Чудеса случаются! Это вам любой программист скажет! :)
  • Nikolai1 wrote:Ага, и такой есть!
    Только теперь другая проблема появилась
    Решил, переопределил флешку на Kolibri. Программа Hello, World! успешно запустилась и работает! Теперь буду экспериментировать!

    Спасибо огромное за помощь. Сам бы неделю наверное разбирался :wink:
    Чудеса случаются! Это вам любой программист скажет! :)
  • Как и Nikolai1 попробовал скомпилировать тестовый проект, сгенерированый makevcproj.exe . Студия 2010 выругалась:
    error C1902: Несоответствие диспетчера базы данных программы; проверьте установленную копию
    Попробовал с нуля создать проект на С++ (и пустой проект и Win32 App), но студия отказалась создавать, просто в строке состояния написала, что невозможно создать и всё. Причём проект на С# создаёт, другие проекты на С++ компилирует. Кто-нибудь знает, что эта ошибка значит-то?
    Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
  • гугл
    http://softtime.ru/cpp/read.php?id_foru ... theme=1408
    http://msdn.microsoft.com/ru-ru/library/8y7hea02.aspx
    http://www.sql.ru/forum/735846/sborka-p ... vc-express
    http://forum.ru-board.com/topic.cgi?for ... start=4340
    mspdbsrv.exe или mspdbcore.dll отсутствует или версия этих файлов отличается от версии библиотеки mspdbXX.dll
    Неизвестно по какой причине в VS 2008 перестает видеть эти файлы в директории C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\
    Приходится копировать их в C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\
    тогда все работает.
  • Теперь буду экспериментировать!
    Поэкспериментировал с функциями из smalllibc, всё пока получилось))

    Теперь хочу попробовать какую-нибудь реальную программку сделать. Как в Kolibri создавать в окне элементы интерфейса: кнопки, строки для ввода текста и т.д. и как обрабатывать их события?
    Есть какая-нибудь документация или руководство на эту тему?
    Чудеса случаются! Это вам любой программист скажет! :)
  • Nikolai1 wrote:
    Теперь буду экспериментировать!
    Поэкспериментировал с функциями из smalllibc, всё пока получилось))

    Теперь хочу попробовать какую-нибудь реальную программку сделать. Как в Kolibri создавать в окне элементы интерфейса: кнопки, строки для ввода текста и т.д. и как обрабатывать их события?
    Есть какая-нибудь документация или руководство на эту тему?
    Лучшие примеры уже существующие программы :) Для справки описание API и библиотеки Box_Lib
    to infinity and beyond
  • Пробовал сам писать обёртки для системных функций, вроде как получается))

    Только пока не разобрался с загрузкой библиотек
    написал такой код:

    Code: Select all

    typedef struct {
    char    *name ;
    void    *data ;
    } dll_import ;
    
    dll_import* load_dll(char* path);
    //................................
    // Загрузить DLL
    dll_import* load_dll(char* path) {
    	int result;
    	__asm{
    		push 68
    		pop eax
    		mov ebx, 19
    		mov ecx, path
    		int 0x40
    		mov result, eax
    	}
    
    	return result;
    }
    
    //................
    dll_import *lib = load_dll("/sys/lib/box_lib.obj");
    
    он должен подключать библиотеку. При запуске ошибок никаких не происходит
    Как дальше использовать функции из библиотеки? пробую box_lib

    Видел реализацию загрузки и пример использования в программе Table, но в том коде почти не разобрался, знаний языка не хватает :?
    Можете объяснить что к чему? :wink:

    Заранее спасибо))
    Чудеса случаются! Это вам любой программист скажет! :)
  • Who is online

    Users browsing this forum: No registered users and 2 guests