Не поможете ли разобраться в проблеме?
В проекте статической либы определил ресурс (текстовый файл). Построенная либа содержит этот ресурс — проверил. Линкую либу при сборке проекта выполнимого — экзешник ресурс уже не содержит.
Я так понимаю, линкер не берет ресурс либы при сборке. Как бы его об этом попросить?
19.11.04 14:38: Перенесено модератором из '.NET' — TK
Здравствуйте, Abobrov, Вы писали:
A>Не поможете ли разобраться в проблеме? A>В проекте статической либы определил ресурс (текстовый файл). Построенная либа содержит этот ресурс — проверил. Линкую либу при сборке проекта выполнимого — экзешник ресурс уже не содержит.
A>Я так понимаю, линкер не берет ресурс либы при сборке. Как бы его об этом попросить?
Здравствуйте, Kluev, Вы писали:
K>Здравствуйте, Abobrov, Вы писали:
A>>Не поможете ли разобраться в проблеме? A>>В проекте статической либы определил ресурс (текстовый файл). Построенная либа содержит этот ресурс — проверил. Линкую либу при сборке проекта выполнимого — экзешник ресурс уже не содержит. A>>Я так понимаю, линкер не берет ресурс либы при сборке. Как бы его об этом попросить? K>#pragma comment(linker, "/include:resource_symbol")
Насколько я понимаю, таким образом будет необходимо дополнительно прилинковать бинарный ресурсный файл .res, который содержит указываемый символ?
А нельзя ли определить линкеру, чтобы тот, скажем, импортировал секцию .rsrc из статической либы и смержил ее с таковой у исполнимого модуля, либо, в случае отсутствия оной там — просто создал новую на основе импортированной? видел директиву MERGE, которую также можно указывать прагмой для линкера, однако возник вопрос — каким образом определить собственно источник и приемник — поля from и to.
Заранее хочу извиниться, если вопрос чайниковский, и благодарю за ответ.
Здравствуйте, Abobrov, Вы писали:
A>Здравствуйте, Kluev, Вы писали:
K>>Здравствуйте, Abobrov, Вы писали:
A>>>Не поможете ли разобраться в проблеме? A>>>В проекте статической либы определил ресурс (текстовый файл). Построенная либа содержит этот ресурс — проверил. Линкую либу при сборке проекта выполнимого — экзешник ресурс уже не содержит. A>>>Я так понимаю, линкер не берет ресурс либы при сборке. Как бы его об этом попросить? K>>#pragma comment(linker, "/include:resource_symbol") A>Насколько я понимаю, таким образом будет необходимо дополнительно прилинковать бинарный ресурсный файл .res, который содержит указываемый символ?
A>А нельзя ли определить линкеру, чтобы тот, скажем, импортировал секцию .rsrc из статической либы и смержил ее с таковой у исполнимого модуля, либо, в случае отсутствия оной там — просто создал новую на основе импортированной? видел директиву MERGE, которую также можно указывать прагмой для линкера, однако возник вопрос — каким образом определить собственно источник и приемник — поля from и to.
A>Заранее хочу извиниться, если вопрос чайниковский, и благодарю за ответ.
Этого я и сам не знаю. ИМХО в данном случае проще переделать ресурс в С++ файл. и включить его в либу.
Что-то типа:
const char rsc[] = { 0xAA, 0хBB, ... };
Это можно зделать например програмкой reswrap из библиотеки FOX fox-toolkit.org
А вообще таких программок полно.