这个问题本来是提在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编写的控件
我写了一个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* );这有什么不同吗?