将 JavaScript 字符串传递给 ActiveX 控件时出错
我正在编写一个嵌入 Internet Explorer 页面的 ActiveX 控件,但在将字符串从 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)
在调用该方法时,它给我一个“类型不匹配”错误。
感谢您的帮助。
I'm writing an ActiveX control to embed inside an Internet Explorer page, and I'm having trouble passing a string to an ActiveX method from inside JavaScript.
I am using MFC activex control and my function looks like this
DISP_FUNCTION_ID(CCSDS_CommunicationCtrl, "CloseCon", eventidCloseCon, CloseCon, VT_EMPTY,VTS_PI1 VTS_I4)
void CloseCon(CHAR* a,LONG b);
On the JavaScript side, I call the method like this:
CSDS_Communication1.CloseCon("1",3)
while calling the method it gives me a "Type Mismatch" error.
Thank you for any help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
虽然我不太使用 MFC(强烈喜欢 ATL),但我非常确信您无法从 JavaScript 通信 char*,而必须使用 BSTR。即:使用 BSTR 代替 char*,使用 VTS_WBSTR 代替 VTS_Pl1。在您的代码中,请尝试
Although I'm not using MFC much (strongly prefer ATL), I pretty convinced you can't communicate char* from JavaScript, and have to use BSTR. That is: use BSTR instead of char*, and VTS_WBSTR instead of VTS_Pl1. In your code, please try