这个问题本来是提在DELPHI版中的,但一直没有回复,想想也许是VB本身的问题,在VB版问更合适。
我们用VB做了一个OCX控件,该控件定义了一个函数(function)和几个属性(Property),将这个控件注册后,放入窗口(是可视化控件),在代码中引用属性值是可以的,但调用该函数就出错,提示“Project xxx Raised Exception class EOleException with Message '无效的属性值'”。
该函数无参数,返回值为WordBool型(VB中为Boolean)。但即使不取返回值也会出错。请问有没有什么办法可以实现在delphi中调用VB编写的控件
我们用VB做了一个OCX控件,该控件定义了一个函数(function)和几个属性(Property),将这个控件注册后,放入窗口(是可视化控件),在代码中引用属性值是可以的,但调用该函数就出错,提示“Project xxx Raised Exception class EOleException with Message '无效的属性值'”。
该函数无参数,返回值为WordBool型(VB中为Boolean)。但即使不取返回值也会出错。请问有没有什么办法可以实现在delphi中调用VB编写的控件
解决方案 »
- PICTURE控件里如何画立体圆柱
- Timer里用了doevents,关闭窗体不能卸载,怎么解决啊,积极急如令令!
- 如何桌面上查找一个制定的图标?
- VB 如何获得AutoCAD文件中指定位置的文字
- 怎么把1到255ASC码转成单字节字符?
- 请问如果一个下拉列表框已经和库中谋个表的谋个字段绑定了,还可不可以给他赋值?
- 怎么让form框接受keydown事件。
- Access9.0的数据库VB6.0支持吗?为什么我用数据插件连接时总是提示我错误???
- 如何将信息存储到高级格式化都清除不掉的地方?
- 程序员吃鱼!
- 如何从数据库中根据某字段的大小读数据?
- 怎样判断一个结果集是处于 open 状态 还是 close 状态!!?
我写了一个dll.里面也放了几个function, delphi以ActivX方式调用成功的! 你不妨试试
因为已经做成OCX控件了,而且是个很复杂的控件(至少用了15个人月),重新作的代价是很大的。
函数名为test1,无参数,返回值在delphi中为integer,VB中为long(两者等价)
delphi定义如下:
function test1: Integer; safecall;
生成IDL:
[id(0x00000021)]
HRESULT test1([out, retval] long* Value);VB定义如下:
Public Function test1() As Long
生成IDL
[id(0x60030000)]
HRESULT test1([out, retval] long* );这有什么不同吗?