C ++ Получить CLSID моей собственной DLL

Я хочу получить CSLID моей собственной библиотеки DLL из моей библиотеки DLL.
Этот CLSID объявлен в файле .rgs моего приложения.

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

Кто-нибудь может сказать, пожалуйста, как это сделать?

Спасибо.

3

Решение

У DLL нет CLSID, у классов есть. Простой способ получить guid для определенного класса — просто использовать имя для него, автоматически создаваемое при добавлении класса с помощью мастера. Допустим, вы добавили класс с именем «Пример», вы можете использовать CLSID_Example в вашем коде. Еще один способ — использовать ключевое слово __uuidof, напишите __uuidof(Example) в вашем коде это также работает в клиентском коде, когда вы импортировали библиотеку типов с директивой #import.

3

Другие решения

  1. использование GetModuleFileName чтобы получить путь к DLL —
    Получить путь к DLL во время выполнения
  2. Затем получите CLSID из библиотеки типов —
    Учитывая COM DLL, извлеките все классы CLSID и соответствующее имя интерфейса
1

По вопросам рекламы [email protected]