IPB
ЛогинПароль:

> 

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Проблема с созданием ресурсов, windres
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Мужской
Реальное имя: Денис

Репутация: -  0  +


Всё делал как здесь: 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.


Благодарю за отзывы

Сообщение отредактировано: rzr -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Мне так и не удалось скомпилировать RES-файл по инструкции, приведенной на fpc.by.ru... Проблема вся в том, что в доках ясно указано, что fprcp берет данные из файла, и выводит их по умолчанию в stdout, то есть на консоль, и по умолчанию ключ -C не установлен, а windres хотя и позволяет задать название программы-препроцессора, к сожалению не позволяет этому самому препроцессору передавать параметры...

Чтобы весь процесс прошел корректно, есть несколько путей:

1. (этот путь упомянут по приведенной ссылке), не пользоваться символическими описаниями констант, а пользоваться только их численными значениями, тогда необходимость в препроцессоре просто отпадает, и проблема решается. Но действительно, тогда придется помнить все эти числовые значения...

2. Подключать файл, в котором константы описаны в стиле C, в принципе - недостаток тот же, нельзя будет напрямую использовать содержимое приинклуденного файла в проекте, хотя windres отрабатывает вот с такими файлами прекрасно:
commands.cpp
#define CMD_FIRST 0x101
#define CMD_SECOND 0x102
#define CMD_EXIT 0x201
1.rc
#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
copy %1.pp %1.pc
fprcp -i %1.rc -C > %1.tmp
copy %1.tmp %1.pc
windres -i %1.rc -o %1.res
del %1.tmp
del %1.pc

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-а - все врЕменные файлы удаляются, и в папке остаются исе исходные + скомпилированный файл ресурсов...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Мужской
Реальное имя: Денис

Репутация: -  0  +


Спасибо за мегаисчерпывающий ответ, вопрос закрыт
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.09.2020 20:16
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name