2014-01-23 72 views
-1

我有一個C++ COM dll,我已經使用regsvr32進行註冊。我想在代碼中使用dll的函數和類。不幸的是我沒有任何.h,它不帶有.tlb文件。我有文檔如何使用函數和類,但沒有關於如何將dll鏈接到我的項目的信息,所以我可以使用它。我是使用外部COM接口的新手,所以我不太喜歡在哪裏可以找到這些信息。如何在C++中加載已註冊的COM DLL

我已經試過#import "example.dll"(DLL插入項目文件夾,但它看起來像它不工作,我有一個無法加載DLL的錯誤。我的計劃是混合CLR /託管C++。

有什麼建議?

在此先感謝

+0

該文檔是否包含所有方法及其簽名?按照與int相同的順序,他的界面?如果是這樣,你應該可以編寫自己的'.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; 
};