读书人

C++ ActiveX 调用Javascript没法在子

发布时间: 2013-07-04 11:45:40 作者: rapoo

C++ ActiveX 调用Javascript,无法在子线程中调用,求方案
C++ MFC 做ActiveX,发现控件调用js的时候,在主线程中可以执行成功,在子线程中就报错,有没有办法? 大家都怎么做的?

我用ATL的CComDispatchDriver是这样的,用原生的IDispatch Invoke来实现还是这样的,怎么办才好呢?

我在做的ActiveX涉及到文件上传(在子线程中完成的),子线程要不停的告诉浏览器上传进度、状态等信息,可子线程没法调用javascript方法。 C++?ActiveX? CComDispatchDriver IDispatch 线程
[解决办法]
子线程加上 AfxOleInit 试试看

    
_AFX_THREAD_STATE* pState = AfxGetThreadState();
if (!pState->m_bNeedTerm && !AfxOleInit())
AfxMessageBox(_T("OLE initialization failed."));

[解决办法]
散列,列集,如果不支持,那么就还是子线程发送消息给主线程来调用JS
[解决办法]
在子线程中调用CoInitialize(NULL);吧,我最近在做COM组件的开发,在子线程里面调用COM组件的时候就遇到了这种问题
[解决办法]
还是推荐子线程发送消息给主线程来发送事件
[解决办法]
我也遇到同样的问题,发送消息可行,但是是在有window的情况下才可以采用,没有window的ActiveX,又该怎么做呢?

散集,列集,这个能做到么? 怎么做啊? 菜鸟一枚,不懂啊,求高人指教。
[解决办法]
CoInitialize(NULL); 这个加了没?
[解决办法]
引用:
CoInitialize(NULL); 这个加了没?


我在线程函数里做了这个,但是还是没用。
我这么加对么?
[解决办法]
找到解决方案:
这里有完整的代码例子:
http://www.cnblogs.com/zdxster/archive/2011/01/27/1945872.html

放在这里给有需要的人参考。

读书人网 >VC/MFC

热点推荐