[問題] 有關於 CoCreateInstance

作者: jay70120 (小鳥頭)   2018-04-24 14:42:29
開發平台(Platform): (Ex: Win10, Linux, ...)
Windows 10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
餵入的資料(Input):
預期的正確結果(Expected Output):
No error
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
hr = CoCreateInstance(CLSID_MbnInterfaceManager,
NULL,
CLSCTX_ALL,
IID_IMbnInterfaceManager,
(void**)&m_gInterfaceMgr);
Debug::Write(__FUNCTION__, "Enter CLSID MbnInterfaceMrg.", DEBUG_TYPE);//QQ
if (FAILED(hr))
{
Debug::Write(__FUNCTION__, "Creating COM Instance of IMbnInterfaceManager Failed.", ERROR_TYPE);
goto __Exit_CreateWWANDevice;
}
hr = m_gInterfaceMgr->GetInterfaces(&psaObjects);
if (FAILED(hr))
{
Debug::Write(__FUNCTION__, "IMbnInterfaceManager::GetInterfaces Failed.", ERROR_TYPE);
goto __Exit_CreateDevice;
}
hr = SafeArrayGetLBound(psaObjects, 1, &lLower);
if (FAILED(hr))
{
Debug::Write(__FUNCTION__, "SafeArrayGetLBound Failed.", ERROR_TYPE);
goto __Exit_CreateDevice;
}
hr = SafeArrayGetUBound(psaObjects, 1, &lUpper);
if (FAILED(hr))
{
Debug::Write(__FUNCTION__, "SafeArrayGetLBound Failed.", ERROR_TYPE);
goto __Exit_CreateDevice;
}
補充說明(Supplement):
小弟為c++的新手 目前拿到一板source code 在debug
此為放在services 的一個服務器 目前遇到的問題是 create com instance 都可以正常過
但到了 GetInterface 還有 SafeArray 都會fail 更怪的是我用手動開啟這個服務器是可以
正常的但是我把系統重開機的話就會跑出這幾段error
請問有人遇過這樣的問題嗎? 真的無解了… 嗚嗚
作者: Lipraxde (Lipraxde)   2018-04-24 16:00:00
我覺得你應該要看看那個 hr 是什麼值恩...hr的type應該長那樣嗎?
作者: petercoin (彼得幣)   2018-04-24 20:25:00
我印象中HRESULT是DWORD
作者: LPH66 (-6.2598534e+18f)   2018-04-25 02:58:00
HRESULT 是 Handle, 要印的話轉成 void * 最穩
作者: Lipraxde (Lipraxde)   2018-04-25 13:38:00
為什麼會覺得hr是個char *?他應該要指到一個字串告訴你錯誤訊息嗎?一般來說function的回傳值應該是個錯誤碼吧

Links booklink

Contact Us: admin [ a t ] ucptt.com