2010-05-27 2 views
1

Все,C++ DLLs более новая версия

У меня есть C++ COM DLL, написанная с использованием Visual Studio. Все интерфейсы имеют GUID в файлах idl и rgs. Мы хотим создать новую DLL с новыми GUID, поскольку мы хотим, чтобы она сосуществовала на одной машине со старой, но с другой логикой. Количество идентификаторов GUID больше 200. Есть ли инструмент, который находит идентификаторы GUID и заменяет их? Я заметил, что для каждого GUID в idl-файле в файлах rgs есть три одинаковые.

Я на самом деле не в C++ COM, но я должен получить это сделать:

Rgds, MK

+0

Изменяется ли каждый отдельный интерфейс? Я не являюсь COM-гуру любыми средствами, но я думаю, что если некоторые интерфейсы не изменяются, вам не нужно менять эти GUID. Измените один указатель, который идентифицирует сам COM-объект. Но оставляйте контуры одинаковыми на неизмененных интерфейсах. –

+0

Мы изменили почти все. – koumides

+0

Вы имеете в виду совершенно новую COM-DLL с таким же интерфейсом с первым? –

ответ

0

Мы используем следующий немой, но рабочий подход: мы сохраняем все идентификаторы GUID отношение к COM-классам и интерфейсы как #define s в одном заголовке, который входит в файл .idl. Когда нам нужно нарушить совместимость, мы просто открываем этот файл и вручную заменяем все GUID. Не очень элегантный, но надежный и работает.

Так что я предлагаю вам просто найти все GUID в вашем проекте и заменить их. Думаю, вам будет лучше перемещать их все в одном месте одновременно.

Смежные вопросы