softwaremonkey Ответов: 3

Как управлять включением ресурсов при использовании нескольких библиотек DLL только для ресурсов


У меня есть приложение MFC, которое нуждается в многоязычной поддержке. Я сделал это, создав библиотеки DLL только для ресурсов и скопировав ресурсы из основного приложения в каждую из библиотек DLL. Проблема в том, что каждая из библиотек DLL имеет свой собственный файл Resource.h, И я обеспокоен тем, что нумерация ресурсов может стать беспорядочной. Каков наилучший способ гарантировать, что нумерация ресурсов всегда будет согласованной во всех языковых библиотеках dll?

Спасибо

Тони

Что я уже пробовал:

Я пробовал копировать resource.h из основного проекта приложения в проекты DLL каждый раз, когда я делаю изменения в ресурсах, но, конечно, есть лучший способ сделать это.

3 Ответов

Рейтинг:
27

Richard MacCutchan

Да, есть гораздо лучший способ. Вы должны использовать один заголовок файла ресурсов и одну библиотеку DLL. При создании ресурсов следует использовать заголовки языка ресурсов для разделения различных языковых групп. Затем вы указываете язык при загрузке элемента ресурса в вашу программу.


softwaremonkey

Эй, спасибо, это звучит здорово, но я не знаю, как это сделать. Знаете ли вы какие-нибудь примеры, которым я мог бы следовать?

Рейтинг:
2

Rick York

Во-первых, поиск "multiple language resource DLL", без кавычек, даст вам множество подсказок о том, как это сделать.

Мне кажется, что вы должны использовать только один ресурс. Там может быть только один, если вы хотите, чтобы ваше приложение работало правильно.


Рейтинг:
0

softwaremonkey

Спасибо, Ричард, это звучит как более аккуратный подход. Кстати, я нашел эту интересную и полезную ссылку, которая содержит подробную информацию об обмене общим заголовком между несколькими файлами ресурсов...

https://msdn.microsoft.com/en-us/library/6t3612sk.aspx[^].


Richard MacCutchan

Действительно полезная ссылка, и я сделал ее кликабельной. Но в будущем не публикуйте комментарии в качестве решений, используйте кнопки "Ответить" или "задать вопрос или комментарий" под соответствующим сообщением.