2014-01-23 4 views
-1

У меня есть C++ COM dll, и я зарегистрировал его с помощью regsvr32. Я хочу использовать функции и класс dll внутри моего кода. К сожалению, у меня нет .h, и он не поставляется с файлом .tlb. У меня есть документация, как использовать функции и класс, но нет никакой информации о том, как связать dll с моим проектом, чтобы я мог использовать его. Я новичок в использовании внешнего COM-интерфейса, поэтому я не совсем уверен, где могу найти эту информацию.Как загрузить зарегистрированную COM DLL в C++

Я попытался #import "example.dll" (DLL вставленный в папке проекта, но похоже, что он не работает, у меня есть не удается загрузить DLL ошибки. Моя программа перемешивается CLR/неуправляемого C++.

Любые предложения?

заранее спасибо

+0

Имеется ли в документации все методы и их подписи? В том же порядке, в каком они взаимодействуют? Если это так, вы должны иметь возможность написать собственный файл '.h'. В противном случае вам будет тяжело ... –

+0

Да, все определение и декларация внутри документации. Так что я должен сам воспроизвести .h? –

ответ

0

Если обеспечивается достаточная информация, вы можете определить интерфейсы в заголовке файла самостоятельно. Я бы рекомендовал использовать #import импортировать существующую библиотеку COM типа и исследовать сгенерированный .tlh файл для идей. для простой интерфейс с функции, например, код выглядит примерно так:

struct __declspec(uuid("Interface-Guid-with-Dashes")) IInterfaceName : IUnknown 
{ 
    virtual HRESULT __stdcall get_Value (/*[out,retval]*/ long * result) = 0; 
    virtual HRESULT __stdcall Execute (/*[in]*/ int value) = 0; 
}; 
Смежные вопросы