使用VBS调用C#写的COM组件问题

super_admi 2017-10-28 04:07:25
首先,核心模块,肯定是用C#和JAVA写的,所以这个地方不能动;

其次,调用核心模块的东西,花样繁多,总之不是由我能决定的,这里的问题,是由VBS导致的。

最后,问题如下:

在使用VBS调用C#写的COM组件时,调用正常,但需要VBS响应COM事件,以回写数据,问题就来了:
1.次VBS是WINDOWS下VBS的子集,不支持WScript.CreateObject,所以某种回调方式不能用;

2.在网上看到另一种方式:COM组件中给一个属性,然后VBS中使用GetRef取一个函数指针赋给这个属性,最后使用这个属性来回调VBS函数,参考:
http://blog.csdn.net/collin1211/article/details/1864624
http://blog.csdn.net/hyhnoproblem/article/details/42129293

这个地方的COM组件是用ATL写的,调用部分使用了Invoke函数,我没看懂的地方是:C#这个地方应该怎么写?
...全文
559 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
super_admi 2017-11-02
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
不支持WScript.CreateObject 这个比较麻烦,它到底限制了什么,支持调用dll么?
不支持WScript.CreateObject,但支持VBS自身的CreateObject,我不太清楚你说的调用DLL在这里是什么,不过最终我把问题解决了:在COM组件中实现了一个属性,然后VBS中使用GetRef赋值给它,最终在COM组件中使用InvokeMember来调用
threenewbee 2017-10-28
  • 打赏
  • 举报
回复
不支持WScript.CreateObject 这个比较麻烦,它到底限制了什么,支持调用dll么?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧