我是一個COM初學者。我有一個使用regsvr32
命令註冊的DLL文件。在COM客戶端中,我嘗試使用CoCreateInstance
函數,但它不起作用。這是我的代碼:如何在C++中使用CoCreateInstance
IMessageBox *pBox;
hr = CoCreateInstance(
__uuidof(IMessageBox),
NULL,
CLSCTX_INPROC_SERVER,
IID_IUnknown,
(void **)&pBox
);
IMessageBox
是在我的DLL文件中定義的接口。它實現了IDispatch
接口。 hr
的結果顯示錯誤REGDB_E_CLASSNOTREG
。我如何使用CoCreateInstance
功能?
第一個參數是CLSID,它是要創建的類對象的GUID。我們不知道,但它肯定不是IMessageBox接口的引導。 –
澄清:假設你想使用一個實現了IMessageBox接口的AcmeMessageBox。然後你會傳遞'__uuidof(AcmeMessageBox)'和'IID_IMESSAGEBOX'。 – MSalters