VC开发的ocx调用dll中报错“0x80010012 被呼叫方(服务器 [不是服务器应用程序])不可用并已消失。所有连接均无效。没有执行呼叫。”
_hr 0x80010012 被呼叫方(服务器 [不是服务器应用程序])不可用并已消失。所有连接均无效。没有执行呼叫。 HRESULT
具体值为:
-2147418094
报错的位置是tli文件,是自动生成的文件,报错的语句是
_com_issue_errorex
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
一直找不到问题,也查不到相关的内容:
最后比对代码,发现是我在工具类的析构函数中调用了,导致的此问题。
CoUninitialize();
把这一句去掉,就不会报错了,由于我使用了wmi查询,因此为了释放我调用了此函数,但是由于目前的环境是dll中,其他地方也要用到这个,而我释放了,因此导致的问题。
我这个函数是js调用的,js即可以往里面传数据,也可以获取数据,在js往里面传数据的时候不会报错,但是需要向js返回数据的时候就报错了