在工程里面使用向导添加了一个自动化的类COrder,继承自CCmdTarget,客户端ID是Test.Order
但是VBS里面使用Set obj = CreateObject("Test.Order")报错,无法创建对象
查了资料,说是要支持双接口才可以,但是怎么修改才能支持双接口?
有没有可以参考的代码?
非常感谢
12 个解决方案
#1
http://www.vckbase.com/document/viewdoc/?id=1506
这篇文章中介绍了如何实现双接口。
这篇文章中介绍了如何实现双接口。
#2
学习
#3
我就是照着这个文章做的,但还是没效果,查资料说是要改成dual interface,但是找不到相关文章和代码
#4
搜索TN038
也可以在控件中声明一个方法来创建新的对象,不必非要一个CLSID
也可以在控件中声明一个方法来创建新的对象,不必非要一个CLSID
#5
帮顶
#6
学习
#7
可以在JS里面创建ActiveX里面的自动化对象了,但是在JBS里面改了对象属性后,再传到ActiveX,发现对象的属性都消失了,象是ID,本来在JS里面显示都是101,但是再传递到ACTIVEX里面,发现ID成了-8XXXXXXX,这个怎么解决?
#8
估计是有无符号的问题,估计是js传过来的数据是无符号的数据,而你使用无符号数据来获取,这可能出错.
#9
不光是数字类型,字符串类型干脆显示《指针错误》,所有属性都一样
我是用IDISPATCH* 从ActiveX创建内置自动化对象->JS接收(JS接收后,对象属性都是正确的)-> JS修改对象属性->ActiveX(这一步就出现问题了,ActiveX可以接收到对象,可以从IDISPATCH*强制转换为Entity*,但是属性全部丢失了)
是因为COM对象在ActiveX和JS之间传递,被意外释放掉了么,但是我在从ActiveX->JS传递IDISPATCH*的时候,是使用GetIDISPATCH(TRUE)传递的,应该是AddRef了的
#10
那你进入调试状态,单步调试,看一下是什么错误了
#11
帮顶,UP
#12
使劲顶起
#1
http://www.vckbase.com/document/viewdoc/?id=1506
这篇文章中介绍了如何实现双接口。
这篇文章中介绍了如何实现双接口。
#2
学习
#3
我就是照着这个文章做的,但还是没效果,查资料说是要改成dual interface,但是找不到相关文章和代码
#4
搜索TN038
也可以在控件中声明一个方法来创建新的对象,不必非要一个CLSID
也可以在控件中声明一个方法来创建新的对象,不必非要一个CLSID
#5
帮顶
#6
学习
#7
可以在JS里面创建ActiveX里面的自动化对象了,但是在JBS里面改了对象属性后,再传到ActiveX,发现对象的属性都消失了,象是ID,本来在JS里面显示都是101,但是再传递到ACTIVEX里面,发现ID成了-8XXXXXXX,这个怎么解决?
#8
估计是有无符号的问题,估计是js传过来的数据是无符号的数据,而你使用无符号数据来获取,这可能出错.
#9
不光是数字类型,字符串类型干脆显示《指针错误》,所有属性都一样
我是用IDISPATCH* 从ActiveX创建内置自动化对象->JS接收(JS接收后,对象属性都是正确的)-> JS修改对象属性->ActiveX(这一步就出现问题了,ActiveX可以接收到对象,可以从IDISPATCH*强制转换为Entity*,但是属性全部丢失了)
是因为COM对象在ActiveX和JS之间传递,被意外释放掉了么,但是我在从ActiveX->JS传递IDISPATCH*的时候,是使用GetIDISPATCH(TRUE)传递的,应该是AddRef了的
#10
那你进入调试状态,单步调试,看一下是什么错误了
#11
帮顶,UP
#12
使劲顶起