перенос/портирование Linux to Windows (общие рекомендации)
Модератор: Модераторы
перенос/портирование Linux to Windows (общие рекомендации)
день добрый!
не нашел подобной темы, предлагаю выкладывать/делиться секретами/феньками и плюшками.
надеюсь, в будущем пригодиться.
пожалуйста, только без очевидных моментов :о)
п.с. столкнулся с кучей косяков/тонкостей и особенностей при переносе простого приложения (lin to win), поэтому решил пошерстить темы, оказалось совсем мало. аминь!
не нашел подобной темы, предлагаю выкладывать/делиться секретами/феньками и плюшками.
надеюсь, в будущем пригодиться.
пожалуйста, только без очевидных моментов :о)
п.с. столкнулся с кучей косяков/тонкостей и особенностей при переносе простого приложения (lin to win), поэтому решил пошерстить темы, оказалось совсем мало. аминь!
И какие косяки, тонкости и особенности? Что за "простое приложение"?sunjob писал(а):столкнулся с кучей косяков/тонкостей и особенностей при переносе простого приложения (lin to win)
Код: Выделить всё
{$IFDEF WINDOWS}
SimpleIPCServer1.StartServer(False);
{$ELSE}
SimpleIPCServer1.StartServer;
{$ENDIF} Ну и ещё:
Код: Выделить всё
{$IFDEF WINDOWS}
LHelpConnector1.LHelpPath :=CurDir+'lhelp.exe';
{$ELSE}
LHelpConnector1.LHelpPath :=CurDir+'lhelp';
{$ENDIF} Код: Выделить всё
{$IFDEF WINDOWS}
HostName:=SysUtils.GetEnvironmentVariable('COMPUTERNAME');
{$ENDIF}
{$IFDEF UNIX}
HostName:=SysUtils.GetEnvironmentVariable('HOSTNAME');
{$ENDIF} ...
Последний раз редактировалось sunjob 11.09.2024 13:15:02, всего редактировалось 1 раз.
Занимался портированием, читайте, будет полезно, люди так же давали некоторые советы. Постарался расписать последовательность действий, но может не совсем понятно.
Добавлено спустя 24 минуты 32 секунды:
Re: перенос/портирование Linux to Windows (общие рекомендации)
Общая последовательность такая:
1. портируете проект.
2. пытаетесь запустить, если проект запускается то переходим к пункту 5.
3. "удаляете" (комментируете) места где происходит ошибка. Если проект большой, записывайте всё что "удаляли" себе в блокнот. Если понимаете где надо будет делать подобные действия, просто делайте без очередной компиляции проекта.
4. повторяете 3-й пункт пока не скомпилируется проект.
5. начинаете само портирование программы. Самый долгий и самый нудный процесс, здесь вам надо попытаться восстановить то, что вы "удаляли" ранее. Самое основное в этом случае, это функциональность созданную для Windows надо:
- заменить, благо для этого уже существует ряд модулей LCLIntf.
- подменять какими-то своими или уже готовыми решениями. На что уйдёт больше сил.
Терпения вам!
Добавлено спустя 24 минуты 32 секунды:
Re: перенос/портирование Linux to Windows (общие рекомендации)
Общая последовательность такая:
1. портируете проект.
2. пытаетесь запустить, если проект запускается то переходим к пункту 5.
3. "удаляете" (комментируете) места где происходит ошибка. Если проект большой, записывайте всё что "удаляли" себе в блокнот. Если понимаете где надо будет делать подобные действия, просто делайте без очередной компиляции проекта.
4. повторяете 3-й пункт пока не скомпилируется проект.
5. начинаете само портирование программы. Самый долгий и самый нудный процесс, здесь вам надо попытаться восстановить то, что вы "удаляли" ранее. Самое основное в этом случае, это функциональность созданную для Windows надо:
- заменить, благо для этого уже существует ряд модулей LCLIntf.
- подменять какими-то своими или уже готовыми решениями. На что уйдёт больше сил.
Терпения вам!
Код: Выделить всё
writeln('string');
p.s. (можно не комментировать, бормант уже наставил на путь истинный
(из диалога)
Процесс может быть
- консольным (флаг в PE-заголовке), тогда при старте ему винда создаст консоль и свяжет с ней stdIn, stdOut, stdErr.
- GUI, тогда не создаст и не свяжет.
+
а как народ выкручивается?
-->
Логи в журнал винды или в файл.
Если нужно в консоль, можно создать отдельно
+
Write или WriteLn без явного указания файла - это
Код: Выделить всё
Write(Output, ...)
WriteLn(Output, ...)
Чтобы Write, WriteLn в файл писал:
Код: Выделить всё
Output: AssignFile(Output, pathTo);
Rewrite(Output);
<...>
Close(Output);AllocConsole
using-the-console
как только начинают портирование с одной платформы на другую или ЯП на другой, я понимаю, что проект вошел в стадию энтропии 
Гуёвое приложение при старте создаёт консоль и один раз сворачивает её. Если при этом свернутся лишние консоли, то это будет один раз.sunjob писал(а):Процесс может быть
- консольным (флаг в PE-заголовке), тогда при старте ему винда создаст консоль и свяжет с ней stdIn, stdOut, stdErr.
- GUI, тогда не создаст и не свяжет.
+
а как народ выкручивается?
Добавлено спустя 3 минуты 18 секунд:
Re: перенос/портирование Linux to Windows (общие рекомендации)
Необязательно. Больше всего пользователей в винде, а разработчик может её не любить и писать в линуксе а потом собирать виндовую сборку в вайне, тогда к проекту не прицепятся лишние виндовые зависимости, бо что виндовое не работает в вайне - не нужноMaratIsk писал(а):как только начинают портирование с одной платформы на другую или ЯП на другой, я понимаю, что проект вошел в стадию энтропии
Сударь, Вы не поняли - портирование проекта или перенос решения на другую платформу или ЯП, говорит об одном - пришел новый техдир со своими тараканами в голове и идеями - все переписать
