Использование устаревших библиотек ресурсов в C#

Я использую устаревшую, неуправляемую, ресурсную только С++ dll в новом приложении С#. Мне удалось загрузить ресурсы из dll, используя жестко заданные номера ресурсов.

Есть ли способ сделать это, используя идентификатор ресурса в С#?

Старый код C++ все еще поддерживается, что означает, что идентификаторы/значения ресурсов могут измениться. Это может сделать номера ресурсов в коде С# неверными/недействительными.

Лучшее, что я могу придумать, это вырезать/вставить файл resource.h в класс С#, а затем выполнить ручной поиск/замену, чтобы отформатировать его в класс С#. Это нужно будет делать после каждого изменения файла ресурсов. Есть ли способ лучше?


person Bob Balaban    schedule 13.01.2010    source источник


Ответы (2)


Я предполагаю, что вы спрашиваете не о том, как загружать эти ресурсы, а о том, как синхронизировать идентификационные номера?

Если это так, я бы предложил иметь 2 файла заголовков, в которых определены идентификаторы ресурсов. Используйте resource.h точно так же, как и сейчас, для вещей, которые вы не возражаете против изменения Wizards, но добавьте второй заголовочный файл (например, appresource.h), который вы редактируете вручную. Таким образом, вы можете гарантировать, что идентификаторы в этом файле никогда не изменятся. Тогда единственный раз, когда вам нужно изменить свое приложение C#, — это добавить новые ресурсы, которые вы хотите использовать.

person John Dibling    schedule 13.01.2010

Если ресурсная dll не поддерживается вами, я бы подумал о написании скрипта/инструмента для выполнения того, что вы сказали, но автоматизированного (насколько это возможно).

person Anton    schedule 13.01.2010