Board.KolibriOS.org

Official KolibriOS board
It is currently Thu Apr 25, 2019 9:46 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 22 posts ]  Go to page Previous 1 2
Author Message
 Post subject: Re: Порт wine
PostPosted: Sun Apr 07, 2013 8:38 pm 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 455
Ну, во-первых, для виндовых прог исходники обычно не раздаются:( Во-вторых, портировать пару сотен прог - лучше одну, хоть и сложную. В третьих, реализовать пару виндовых функций, а затем увидеть результат работы в форме рабочего хелловорлда - это такой кайф, что его хочется продлевать и продлевать. В четвёртых, я начинающий программист, а доскональное знание винапи, устройства памяти, реестра и ещё куча всего, что я получу при реализации, мне очень пригодятся и с лихвой окупают затраченное время. И пусть даже я за год смогу соорудить совместимость только с десяткой(да хоть и меньше, всё равно) реально полезных виндовых прог, но бросать идею - ни за что. Ну и самое главное: не так страшен чёрт, как его рисуют:)

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


Top
   
 Post subject: Re: Порт wine
PostPosted: Sun Jun 02, 2013 10:57 am 
Offline

Joined: Sun Jun 02, 2013 10:25 am
Posts: 2
если у вас есть желание научить колибри запускать вин-приложения, думаю стоит попробовать научить само ядро, с вайна потребуются только либы. процесс будет не совсем легкий, но получите опыт.
хотя я больше придерживаюсь, что если нужно что-то с винды, то лучше портировать, тем самым поможете проекту с софтом.


Top
   
 Post subject: Re: Порт wine
PostPosted: Sun Jun 02, 2013 11:03 am 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Нафиг ядро? viewtopic.php?f=9&t=2318


Top
   
 Post subject: Re: Порт wine
PostPosted: Mon Jun 03, 2013 2:44 pm 
Offline

Joined: Sun Jun 02, 2013 10:25 am
Posts: 2
SoUrcerer wrote:
Нафиг ядро? viewtopic.php?f=9&t=2318


а приложения, которым требуется псевдо виндовый реестр как будут работать?


Top
   
 Post subject: Re: Порт wine
PostPosted: Mon Jun 03, 2013 3:05 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Кто мешает сделать это в user-mode? В любом случае библиотеки используются. Это может быть что-то вроде ARWINSS, только не ARWINSS :)


Top
   
 Post subject: Re: Порт wine
PostPosted: Wed Jun 05, 2013 9:09 pm 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 455
Ядро(точнее драйвер) нужен только затем, что бы выделить память в любом месте виртуального пространства. А остальное элементарно сооружается в user-mode. А реестр - это файлы. И вин-проги обращаются к нему через функции вин-библиотек. Т.е. даже не обязательно соблюдать вин-формат файлов реестра(хотя желательно:) ).
PS: Не предсталяю как можно портировать автодиагностические программы, если не то что исходники, но просто дизассемблировать их - работа иногда очень сложая. По крайней мере у меня ни умений, ни желания нет)

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


Top
   
 Post subject: Re: Порт wine
PostPosted: Fri Jun 07, 2013 9:05 pm 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 455
Вот выкладываю свои старания. Пока библиотеки мягко говоря не развиты. Работает MesageBox(и Юникод тоже). ExitProcess вылетает:( User умел создавать окно, кнопки и обрабатывать элементарные события, но после переделки разучился :D. Но это пока. Вот. Ядро этой программы(назвал Victoria, надеюсь претензий не будет:) ) умеет грузить проги и библиотеки PE. Также в ней находятся некоторые общие функции для библиотек(менеджер памяти, конвертор кодировок...). Компиляция несколько сложновата. Приходится преобразовывать отладочную инфу для Victoria в инклудник(это можно сделать с помощью DbgToOffsTabl). Этот инклудник нужен библиотекам, иначе они просто не смогут пользоватся функциями ядра проги. Вот. Для работы этой проги нужно скопировать драйвер vicdrv.obj в /sys/drivers. И для этого драйвера нужно, что бы ядро экспортировало функцию user_alloc_at. В архив я положил модифицированное ядро. Так что к ядерщикам просьба: добавьте, пожалуйста. Затем надо в Victoria.ini прописать путь до папки /dlls(в ней лежат псевдоWin-библиотеки). Ну и тогда можно запускать вин-проги: victoria /hd0/1/proga.exe . Если прога досовая(точнее не PE), то она будет запущена в dosbox(путь до него содержиться Victoria.ini). Единственная фишка в пути: он не должен содержать ".exe " (последний пробел. Если его нет, то работать будет нормально). Ну в общем сие творение чего-то полезного пока не запускала, но, надеюсь, всё будет. Пока пару пробных прог есть в архиве в tests (прога micronw.exe выводит HelloWorld на доску отладки, testdll тоже, просто у неё чуть сложнее загрузка импортируемых библиотек).


Attachments:
Victoria.zip [259.72 KiB]
Downloaded 135 times

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 22 posts ]  Go to page Previous 1 2

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 0 guests


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