[问题] 有关于 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