Board.KolibriOS.org

Official KolibriOS board
It is currently Sat Aug 17, 2019 2:04 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 17 posts ]  Go to page 1 2 Next
Author Message
PostPosted: Tue Oct 14, 2014 8:23 pm 
Offline

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

_________________
Чудеса случаются! Это вам любой программист скажет! :)


Top
   
PostPosted: Tue Oct 14, 2014 8:27 pm 
Offline

Joined: Wed May 18, 2005 7:27 pm
Posts: 1001
Ты пока не пиши ничего свое, а лучше пробуй скомпилировать примеры из SDK колибри. Получиться или неполучится, в любом случае отпиши сюда снова о результатах.

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

SDK тут http://builds.kolibrios.org/eng/data/contrib/sdk/ и тут http://websvn.kolibrios.org/listing.php ... ources%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.

Top
   
PostPosted: Tue Oct 14, 2014 8:34 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1620
При таких условиях viewtopic.php?p=43001#p43001 - способ, требующий минимального количества настроек.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Tue Oct 14, 2014 8:36 pm 
Offline

Joined: Wed May 18, 2005 7:27 pm
Posts: 1001
http://habrahabr.ru/company/kolibrios/blog/229231/

viewtopic.php?f=2&t=658


Top
   
PostPosted: Tue Oct 14, 2014 9:14 pm 
Offline

Joined: Sat Oct 11, 2014 6:06 pm
Posts: 67
Quote:
При таких условиях viewtopic.php?p=43001#p43001 - способ, требующий минимального количества настроек.

Компилирую проект Test, который создался с помощью генератора. Пишет вот такое:
Spoiler: Show
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 ==========

_________________
Чудеса случаются! Это вам любой программист скажет! :)


Top
   
PostPosted: Tue Oct 14, 2014 9:25 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1620
Генератор создаёт solution с двумя проектами, программой и библиотекой. Для работы нужны оба проекта, не нужно было удалять smalllibc после генерации.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Tue Oct 14, 2014 9:36 pm 
Offline

Joined: Sat Oct 11, 2014 6:06 pm
Posts: 67
CleverMouse wrote:
Генератор создаёт solution с двумя проектами, программой и библиотекой. Для работы нужны оба проекта, не нужно было удалять smalllibc после генерации.

Ура!!! Всё скомпилировалось! В папке Release появился файлик test.exe.

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

_________________
Чудеса случаются! Это вам любой программист скажет! :)


Top
   
PostPosted: Tue Oct 14, 2014 9:42 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1620
test.exe - промежуточный файл, который не загрузится. В папке Release рядом с test.exe ещё должен появиться файл test без расширения, под Колибри запускать нужно его.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Tue Oct 14, 2014 9:48 pm 
Offline

Joined: Sat Oct 11, 2014 6:06 pm
Posts: 67
Ага, и такой есть!
Только теперь другая проблема появилась :shock:
VMWare пишет: "Host USB device connections disabled" и не могу переопределить флешку на виртуальную машину

_________________
Чудеса случаются! Это вам любой программист скажет! :)


Top
   
PostPosted: Tue Oct 14, 2014 10:08 pm 
Offline

Joined: Sat Oct 11, 2014 6:06 pm
Posts: 67
Nikolai1 wrote:
Ага, и такой есть!
Только теперь другая проблема появилась

Решил, переопределил флешку на Kolibri. Программа Hello, World! успешно запустилась и работает! Теперь буду экспериментировать!

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

_________________
Чудеса случаются! Это вам любой программист скажет! :)


Top
   
PostPosted: Sun Oct 19, 2014 12:35 am 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 455
Как и Nikolai1 попробовал скомпилировать тестовый проект, сгенерированый makevcproj.exe . Студия 2010 выругалась:
error C1902: Несоответствие диспетчера базы данных программы; проверьте установленную копию
Попробовал с нуля создать проект на С++ (и пустой проект и Win32 App), но студия отказалась создавать, просто в строке состояния написала, что невозможно создать и всё. Причём проект на С# создаёт, другие проекты на С++ компилирует. Кто-нибудь знает, что эта ошибка значит-то?

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Top
   
PostPosted: Mon Oct 20, 2014 4:48 pm 
Offline

Joined: Wed May 18, 2005 7:27 pm
Posts: 1001
гугл
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
Quote:
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\
тогда все работает.


Top
   
PostPosted: Fri Oct 24, 2014 3:54 pm 
Offline

Joined: Sat Oct 11, 2014 6:06 pm
Posts: 67
Quote:
Теперь буду экспериментировать!

Поэкспериментировал с функциями из smalllibc, всё пока получилось))

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

_________________
Чудеса случаются! Это вам любой программист скажет! :)


Top
   
PostPosted: Fri Oct 24, 2014 3:59 pm 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1150
Nikolai1 wrote:
Quote:
Теперь буду экспериментировать!

Поэкспериментировал с функциями из smalllibc, всё пока получилось))

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

Лучшие примеры уже существующие программы :) Для справки описание API и библиотеки Box_Lib

_________________
я лишь учусь


Top
   
PostPosted: Mon Nov 03, 2014 10:07 pm 
Offline

Joined: Sat Oct 11, 2014 6:06 pm
Posts: 67
Пробовал сам писать обёртки для системных функций, вроде как получается))

Только пока не разобрался с загрузкой библиотек
написал такой код:
Code:
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:

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

_________________
Чудеса случаются! Это вам любой программист скажет! :)


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 17 posts ]  Go to page 1 2 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited