![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
KOL2FPC
Кладов © (2003-05-30 19:04:00)
Ну вот, первый шажок сделан: утилиту KOL2FPC я сделал, какое-то количество кода поправил, теперь формируется минимальный KOLFPC.PAS, в нем пока только TObj и TList, и это уже компилируется под FPC и даже кажется выполняется (для Windows пока). Кому интересно посмотреть, я выкладываю утилиту KOL2FPC, а так же архивчик GotoFPC.zip, там обновление для kol.pas от версии 1.74 (именно к обновленной версии и нужно применять KOL2FPC.exe, чтобы получился KOLFPC.PAS), и пример приложения (тьфу, какого приложения! программы), которое умеет так пока мало... но занимает 83,5К даже после удаления отладочной информации :) Ну, лиха беда начало, дойдут руки - мы и системные модули в FPC поменяем, чтобы добиться хотя бы в районе 40К минимальную прогу делать.
ссылки: http://bonanzas.rinet.ru/KOL2FPC.zip
http://bonanzas.rinet.ru/GotoFPC.zip
kP^ (2003-06-13 17:05:00) [1]
I followed the instructions added to compile MCK projects using Free Pascal Compiler, but i get this error message (in both FPC IDE or Delphi with apropriate directives):
unit1.pas(18,32) Error: Identifier not found TFORM1,
right at the start, here:
type
{$IFDEF KOL_MCK}
{$I MCKfakeClasses.inc}
{$IFDEF KOLCLASSES} PForm1 = TForm1{!*!}; {$ELSE OBJECTS} PForm1 = ^TForm1;
what"s wrong?
also, MMSYSYEM is always linked in the exe, is there a way to exclude it ?
(answer in english, please)
PVOzerski (2003-06-10 12:20:00) [2]
Касательно экстендеров для FPC - сейчас он поддерживает Go32 v.2 и EMX, а версия 1.1 - еще (ограниченно) WDOSX (хотя его - только последнюю версию!) можно использовать и с 1.0.x через конверсию win32-программы. А уж "чистый" DOS - чего нет, того нет...
Иван Шихалев (2003-06-09 21:03:00) [3]
1. Не понял, в чем проблемы с Format? Я что-то не заметил отличий от Delphi.
2. Unicode пока в стадии разработки. Если не править RTL самостоятельно, то ...
3. Free Pascal - полностью 32-битныйкомпилятор, то есть какой-нибудь DOS-расширитель (extender) все равно нужен. Можно использовать любой, но - с помощью напильника, кувалды и какой-то матери. В виде готового дистрибутива есть только вариант с Go32v2. Какие причины его не использовать? Кроме того, можно попробовать компилировать под него из-под Win32. Но думаю, что будет нехватать некоторых объектных файлов из RTL.
Кладов (2003-06-09 20:33:00) [4]
На самом деле, труд по переводу под FPC только начался. На данный момент, не удалось :
1. Разобраться с функцией Format, как ее правильно оформить для FPC, чтобы компиляция происходила нормально. Просто некогда было разбираться, пока выключил для FPC\KOL.
2. Пришлось отказаться пока от той части кода, которая работает с WideString: FPC постоянно ставится в тупик по поводу того, какую overload-функцию вызывать, по крайней мере, он так пишет. На самом деле, эта часть очень важна для поддержки Unicode, и без нее невозможно начинать программировать для WinCE, используя KOL + FPC. А хотелось бы, наверное.
Может, еще что забыл...
Про LINUIX.
Для программирования альтернативных участков кода я планирую следующий подход:
- KOL.PAS отстается как есть в интерфейсной части;
- В части implementation логически связные группы фунций/методов (например, группа работы с файлами) обрамляются таким образом:
{$IFDEF KOLLINUX}... здесь всё то, что и было - реализация функций для работы с файлами ...
{#Include[KOLLinux_Files.inc]}
{$ELSE KOLWIN32}
{$ENDIF KOLLINUX/KOLWIN32}
- Реализация файловых функций для Linux выносится в KOLLinux_Files.inc, но после выполнения KOL2FPC мы получаем слитный файл FPC\KOL.PAS, в котором этот файл вставлен непосредственно вместо директивы{#Include}. Чтобы при этом удалилась одновременно и та часть кода, которая специфична для win32, достаточно имеющихся команд KOL2FPC. Один раз добавить:
{#If[LINUXONLY]}
{#SkipBetween[$ELSE KOLWIN32][$ENDIF KOLLINUX/KOLWIN32]}
{#Replace[$IFDEF KOLLINUX][]}
{#End}
и запускать KOL2FPC с опцией/D:LINUXONLY
Замечу, что иметь слитный файл очень полезно (нет, просто необходимо) для использования отладчиков и экспертных систем. Ни один из них не умеет найти строки программы, лежащие в inc-файлах.
Вопрос , кто специалист:
Вот я утянул с и-нета пакет 11М для Win32, а теперь хочу еще и для DOS (просто DOS, без Go32v). Собственно вопрос: что мне надо тянуть теперь с freepascal.org, чтобы не снова 11М ? (Или оно у меня уже все есть, и мне надо просто глаза пошире разуть?) :)
Darts (2003-06-09 17:36:00) [5]
> BaRToV (09.06.03 17:16)
asldw32.zip
Иван Шихалев (2003-06-09 17:34:00) [6]
Чтобы ручками не распаковываать скачиваемые архивы. Надеюсь, сие не есть большая проблема?
Тем более, что PATH, например, install.exe тоже не пропишет... Ручками, все ручками, увы :(
Юрий К (2003-06-09 17:22:00) [7]
Спасибо за линки.
" подумать?"
Не всё, что приходит на ум при первом взгляде, будет правильным.
Линк ftp://ftp.freepascal.org/pub/fpc/dist/Win32/separate/install.exeне указан, а вроде бы кажется, что тоже нужно скачивать. Для чего нужен install.exe, всё-таки первым в списке стоит?
BaRToV (2003-06-09 17:16:00) [8]
А stripw в каком архиве лежит?!..
Иван Шихалев (2003-06-09 17:13:00) [9]
Господа, давайте то, что к KOL не относится, но относится к Free Pascal, обсуждать на http://fpc.by.ru/
Иван Шихалев (2003-06-09 17:08:00) [10]
А подумать?
Ладно:
ftp://ftp.freepascal.org/pub/fpc/dist/Win32/separate/basew32.zip
Это вообще ядро - компилятор и RTL.
ftp://ftp.freepascal.org/pub/fpc/dist/Win32/separate/asldw32.zip
Это GNU BinUtils, в том числе ассемблер и компоновщик. Без них работать тоже не будет.
ftp://ftp.freepascal.org/pub/fpc/dist/Win32/separate/idew32.zip
Это - IDE. Нафиг нужно, но ты хотел с ним.
И еще - документация:
ftp://ftp.freepascal.org/pub/fpc/dist/Win32/separate/docs-pdf.zip
ftp://ftp.freepascal.org/pub/fpc/dist/Win32/separate/doc-html.zip
Причем, вторая HTML версия включает в себя вариант для встроенной справки IDE.
Юрий К (2003-06-09 16:15:00) [11]
http://www.freepascal.org/down-win32.html
Всего там много, что из списка оптимально скачать для нужд программирования (не все же 18.5 MB).
Иван Шихалев (2003-06-09 12:15:00) [12]
> PVOzerski © (09.06.03 11:47)
> О пробелах и кавычках - а ведь в Винде, как правило, для
> каждого пути в стиле lfn есть "короткий" эквивалент в стиле
> DOS.
Угу, только при автоматическом вызове того же ldw из того же ppc386 сей радостный факт игнорируется.
PVOzerski (2003-06-09 11:47:00) [13]
О пробелах и кавычках - а ведь в Винде, как правило, для каждого пути в стиле lfn есть "короткий" эквивалент в стиле DOS.
Иван Шихалев (2003-06-09 07:37:00) [14]
http://www.freepascal.org/download.html
Кавычки не помогут - глюк-с в binutils
Юрий К (2003-06-08 19:00:00) [15]
Дайте линк, где взять FPC вместе с IDE, никогда не работал ещё с этим, хочу попробовать.
Юрий К (2003-06-08 17:45:00) [16]
"Наверное, не будет работать, если в путях есть пробелы."
А если пути заключать в кавычки, то может и с пробелами пройдёт? Или это не из той оперы?
Кладов (2003-06-08 05:06:00) [17]
> Why -O coff ?
> I don"t understand ;-( i think that this way it could"nt
> be linked using {$R testkol4.res}.
> Why not : windres -i testkol4.rc -o testkol4.res ?
Вот и я думаю: чего это IDE такое генерит... Ладно, обманул я его, и пойдет теперь. В GotoFPC как раз теперь простой (второй)вариант, только пути к файлам полностью указаны. Наверное, не будет работать, если в путях есть пробелы. Но это мы уже проходили, дураков нет в названиях директорий пробелы использовать.
Boguslaw (2003-06-08 03:48:00) [18]
windres.exe --include -O coff -o c:\pp\projects\test2\testkol4.owr testkol4.res
Why -O coff ?
I don"t understand ;-( i think that this way it could"nt be linked using {$R testkol4.res}.
Why not : windres -i testkol4.rc -o testkol4.res ?
This two are different formats I suppose.
Иван Шихалев (2003-06-07 22:24:00) [19]
Ну... Заглушка, конечно, очевидная. Однако у меня-то все работает и без нее.
Кладов (2003-06-07 21:28:00) [20]
Маленько ошибся, owr не создавался с той программкой, только если он уже был, работало. Но нашел как поправить, вроде теперь работает. Положил в GotoFPC.zip, на сайте (смотреть FakeWindRes.zip внутри).