将JavaScript字符串传递给ActiveX控件时出错

时间:2012-02-22 07:04:13

标签: mfc activex atl

我正在编写一个ActiveX控件来嵌入Internet Explorer页面,而我在从JavaScript内部将字符串传递给ActiveX方法时遇到了麻烦。

我正在使用MFC activex控件,我的功能看起来像这样

DISP_FUNCTION_ID(CCSDS_CommunicationCtrl,“CloseCon”,eventidCloseCon,CloseCon,VT_EMPTY,VTS_PI1 VTS_I4)

void CloseCon(CHAR * a,LONG b);

在JavaScript方面,我调用这样的方法:

CSDS_Communication1.CloseCon( “1”,3)

在调用方法时,它给出了“类型不匹配”错误。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

虽然我没有太多使用MFC(非常喜欢ATL),但我相信你不能从JavaScript传递char *,并且必须使用BSTR。即:使用BSTR代替char *,使用VTS_WBSTR代替VTS_Pl1。在您的代码中,请尝试

DISP_FUNCTION_ID(CCSDS_CommunicationCtrl, "CloseCon", eventidCloseCon, CloseCon, VT_EMPTY, VTS_WBSTR VTS_I4)

void CloseCon(BSTR a, LONG b);