Page 1 of 2

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

Posted: Tue Oct 14, 2014 8:23 pm
by Nikolai1
Здравствуйте!
Я сейчас занимаюсь изучением C++ (пока знаю только основы), хочется попробовать свои силы в программировании под Kolibri (может что-нибудь стоящее смогу сделать :lol: :lol: )
У меня стоит Windows XP, VMWare Workstation с Kolibri N9.
Из компиляторов есть Visual C++ 2010 Express, MinGW (похоже не настроенный), Dev-C++, проблема в том, что я не очень хорошо разбираюсь в консольных командах.
Есть какой-нибудь простой способ, чтобы просто скомпилировать программу под Windows, через флешку перенести в вируальную машину и запустить?

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

Posted: Tue Oct 14, 2014 8:27 pm
by Wildwest
Ты пока не пиши ничего свое, а лучше пробуй скомпилировать примеры из 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

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

Posted: Tue Oct 14, 2014 8:34 pm
by CleverMouse
При таких условиях viewtopic.php?p=43001#p43001 - способ, требующий минимального количества настроек.

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

Posted: Tue Oct 14, 2014 8:36 pm
by Wildwest

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

Posted: Tue Oct 14, 2014 9:14 pm
by Nikolai1
При таких условиях 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 ==========

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

Posted: Tue Oct 14, 2014 9:25 pm
by CleverMouse
Генератор создаёт solution с двумя проектами, программой и библиотекой. Для работы нужны оба проекта, не нужно было удалять smalllibc после генерации.

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

Posted: Tue Oct 14, 2014 9:36 pm
by Nikolai1
CleverMouse wrote:Генератор создаёт solution с двумя проектами, программой и библиотекой. Для работы нужны оба проекта, не нужно было удалять smalllibc после генерации.
Ура!!! Всё скомпилировалось! В папке Release появился файлик test.exe.

Теперь буду пробовать его перенести через виртуальную машину на Kolibri

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

Posted: Tue Oct 14, 2014 9:42 pm
by CleverMouse
test.exe - промежуточный файл, который не загрузится. В папке Release рядом с test.exe ещё должен появиться файл test без расширения, под Колибри запускать нужно его.

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

Posted: Tue Oct 14, 2014 9:48 pm
by Nikolai1
Ага, и такой есть!
Только теперь другая проблема появилась :shock:
VMWare пишет: "Host USB device connections disabled" и не могу переопределить флешку на виртуальную машину

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

Posted: Tue Oct 14, 2014 10:08 pm
by Nikolai1
Nikolai1 wrote:Ага, и такой есть!
Только теперь другая проблема появилась
Решил, переопределил флешку на Kolibri. Программа Hello, World! успешно запустилась и работает! Теперь буду экспериментировать!

Спасибо огромное за помощь. Сам бы неделю наверное разбирался :wink:

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

Posted: Sun Oct 19, 2014 12:35 am
by GerdtR
Как и Nikolai1 попробовал скомпилировать тестовый проект, сгенерированый makevcproj.exe . Студия 2010 выругалась:
error C1902: Несоответствие диспетчера базы данных программы; проверьте установленную копию
Попробовал с нуля создать проект на С++ (и пустой проект и Win32 App), но студия отказалась создавать, просто в строке состояния написала, что невозможно создать и всё. Причём проект на С# создаёт, другие проекты на С++ компилирует. Кто-нибудь знает, что эта ошибка значит-то?

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

Posted: Mon Oct 20, 2014 4:48 pm
by Wildwest
гугл
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\
тогда все работает.

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

Posted: Fri Oct 24, 2014 3:54 pm
by Nikolai1
Теперь буду экспериментировать!
Поэкспериментировал с функциями из smalllibc, всё пока получилось))

Теперь хочу попробовать какую-нибудь реальную программку сделать. Как в Kolibri создавать в окне элементы интерфейса: кнопки, строки для ввода текста и т.д. и как обрабатывать их события?
Есть какая-нибудь документация или руководство на эту тему?

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

Posted: Fri Oct 24, 2014 3:59 pm
by punk_joker
Nikolai1 wrote:
Теперь буду экспериментировать!
Поэкспериментировал с функциями из smalllibc, всё пока получилось))

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

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

Posted: Mon Nov 03, 2014 10:07 pm
by Nikolai1
Пробовал сам писать обёртки для системных функций, вроде как получается))

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

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:

Заранее спасибо))