Всё делал как здесь: http://www.fpc.by.ru/win32/win32-02.shtml Проблема возникает с windres, которая на комманду: windres --preprocessor fprcp -i 1.rc -o 1.res выдает: windres: can't open font file 'exception': no such file or directory ОС: Xp sp-2 FPC: 2.0.4
Чё делать?
Это, кстати, если делать как по ссылке (в .rc-файле подключать #include "commands.pp"). Попробовал я тут не ".pp", а ".ppu"... Теперь ошибка windres: 5:parse error. Вообще, не могли бы Вы описать процесс создания ресурса...
Вот мой 1.rc
Цитата
#include "commands.ppu" MAINMENU MENU BEGIN POPUP "COMMANDS" BEGIN MENUITEM "FIRST CMD",CMD_FIRST MENUITEM "SECOND CMD",CMD_SECOND MENUITEM "EXIT",CMD_EXIT END END
Вот commands.pp:
unit commands; interface const cmd_first=$101; cmd_second=$102; cmd_exit=$201; implementation end.
Мне так и не удалось скомпилировать RES-файл по инструкции, приведенной на fpc.by.ru... Проблема вся в том, что в доках ясно указано, что fprcp берет данные из файла, и выводит их по умолчанию в stdout, то есть на консоль, и по умолчанию ключ -C не установлен, а windres хотя и позволяет задать название программы-препроцессора, к сожалению не позволяет этому самому препроцессору передавать параметры...
Чтобы весь процесс прошел корректно, есть несколько путей:
1. (этот путь упомянут по приведенной ссылке), не пользоваться символическими описаниями констант, а пользоваться только их численными значениями, тогда необходимость в препроцессоре просто отпадает, и проблема решается. Но действительно, тогда придется помнить все эти числовые значения...
2. Подключать файл, в котором константы описаны в стиле C, в принципе - недостаток тот же, нельзя будет напрямую использовать содержимое приинклуденного файла в проекте, хотя windres отрабатывает вот с такими файлами прекрасно: commands.cpp
#include "commands.cpp" MENU1 MENU BEGIN POPUP "test" MENUITEM "FIRST CMD",CMD_FIRST MENUITEM "SECOND CMD",CMD_SECOND MENUITEM "EXIT",CMD_EXIT END END
3. Написать небольшой BAT-файл, обманывающий утилиты (для одного присоединяемого файла работает прекрасно, для нескольких - придется чуть-чуть доработать): run_me.bat
1.rc (внимательнее, подключается НЕ pp-файл, а файл с другим расширением !!!)
#include "1.pc" MENU1 MENU BEGIN POPUP "COMMANDS" BEGIN MENUITEM "FIRST CMD",CMD_FIRST MENUITEM "SECOND CMD",CMD_SECOND MENUITEM "EXIT",CMD_EXIT END END
pp файл остается тем же...
Запускать так: run_me {имя_файла ресурсов без расширения}
Понятно, что название подключаемого файла, pp-файла и rc-файла должно совпадать... Но это довольно легко обойти, и работать со многими include-ами в одном rc-файле, как я и сказал выше...
В результате работы BAT-а - все врЕменные файлы удаляются, и в папке остаются исе исходные + скомпилированный файл ресурсов...