看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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 請問有人遇過這樣的問題嗎? 真的無解了… 嗚嗚 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.23.76.67 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1524552152.A.D58.html
Lipraxde: 我覺得你應該要看看那個 hr 是什麼值 04/24 16:00
我有下了 Debug::Write(__FUNCTION__, (const char*)hr, DEBUG_TYPE) 但是沒有東西跑出來 code還會hang住 不知是否我用的方式有錯 ※ 編輯: jay70120 (211.23.76.67), 04/24/2018 16:04:26
Lipraxde: 恩...hr的type應該長那樣嗎? 04/24 16:28
嗚… 其實我不太知道怎樣去把他po 出來 我還在試… ※ 編輯: jay70120 (211.23.76.67), 04/24/2018 17:01:50
petercoin: 我印象中HRESULT是DWORD 04/24 20:25
LPH66: HRESULT 是 Handle, 要印的話轉成 void * 最穩 04/25 02:58
感謝各位的回復 目前我用 (const char*)hr 也是印不出來… 我發現這個function是抓我的device 然後拉出來認id 我有試過把device 拔掉手動去開 看起來是會show 一樣的log fail 在一樣的地方 看來我要查清楚為什麼reboot 他認不到… 神奇的是 我用innosetup 包起來exe 去安裝是沒問題的 我改成extension inf 就會這樣 ※ 編輯: jay70120 (211.23.76.67), 04/25/2018 11:30:34
Lipraxde: 為什麼會覺得hr是個char *? 04/25 13:38
Lipraxde: 他應該要指到一個字串告訴你錯誤訊息嗎? 04/25 13:38
Lipraxde: 一般來說function的回傳值應該是個錯誤碼吧 04/25 13:38
是的 我找到po 出來了 Debug::Write(__FUNCTION__, CHelpers::DWORDToString(hr) 這樣po才對,po出來的代碼是 2147943568 目前正在查原因 ※ 編輯: jay70120 (211.23.76.67), 04/25/2018 14:02:45