社区
ATL
帖子详情
ATL控件和JS通信
CHwhoami
2018-07-24 05:19:42
新手想请教一个问题,我的ATL控件开发环境是vs2015。在添加方法时,为什么带有[out][retval]属性的返回值必须是指针类型的。
如图所示,当参数类型为BSTR时,retval和out选项框时黑色的。只有当参数类型为BSTR*时,这两个选项才是可选的。其他的类型也是这样。
可是JS里面好像没法识别指针呀,所以请问JS和ATL控件之间一般是怎么传递字符串的?
...全文
158
3
打赏
收藏
ATL控件和JS通信
新手想请教一个问题,我的ATL控件开发环境是vs2015。在添加方法时,为什么带有[out][retval]属性的返回值必须是指针类型的。 如图所示,当参数类型为BSTR时,retval和out选项框时黑色的。只有当参数类型为BSTR*时,这两个选项才是可选的。其他的类型也是这样。 可是JS里面好像没法识别指针呀,所以请问JS和ATL控件之间一般是怎么传递字符串的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
蒋晟
2018-07-28
打赏
举报
回复
out类型的必须是指针,因为调用者负责释放被调用函数返回的字符串的内存,所以需要获得字符串的地址。
Saleayas
2018-07-27
打赏
举报
回复
C语言参数是传值的,所以只有指针才可以带回返回的值。这就是 retval 必须是指针的原因。 因为 COM 接口方法的返回值必须 HRESULT 这个表示 COM的结果,而不知方法的结果。 脚本和 COM 的交互的时候,几乎所有的参数都是 VARIANT 的。 字符串使用是 BSTR ,但是这个 BSTR 也是经过 VARIANT 封装的。 其实就是你在 COM 的 C/C++ 模式的时候,你也不会在使用到 COM 的字符串指针的。 你使用的都是 BSTR ,但是这个却是指针的。 很多高级语言里面的,Object 都是引用的,其实就是指针,有的甚至是指针的指针。
薛定谔之死猫
2018-07-26
打赏
举报
回复
ActiveX和JS通讯走的是IDispatch接口的那种套路吧,变量是超大枚举,自适应
C++
ATL
控件
与JavaScript交互
C++
ATL
控件
与JavaScript交互,利用这个Demo可以开发自己想要的功能,例如利用ActiveX
控件
上传文件,可以用这个功能不断与JavaScript交互,实现文件上传进度条效果。
vc++ 应用源码包_1
内部包含了
atl
控件
的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。
ATL
实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了
atl
的调用方法 ...
使用WTL进行Windows桌面应用开发-第二部
1. 在第一部基础上增加更深入的内容,比如WTL提供的标准Win32窗口和自定义窗口的使用方式. 2. 涉及到一些项目开发难题的窗口自定义的解决方案。 3. 涉及到Gdiplus绘图的项目开发难题的一些解决方案。 4. 推荐使用的...
vc++ 应用源码包_2
内部包含了
atl
控件
的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。
ATL
实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了
atl
的调用方法 ...
vc++ 应用源码包_6
内部包含了
atl
控件
的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。
ATL
实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了
atl
的调用方法 ...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章