想从delphi中调用用foxpro6编译的dll(50分)

  • 主题发起人 主题发起人 tanjiwu
  • 开始时间 开始时间
T

tanjiwu

Unregistered / Unconfirmed
GUEST, unregistred user!
我想从delphi中调用用foxpro6编译的dll,用wss:=createoleobject('VFP_OLE.VFP_OLE_Server') 出现 " raised exception class eresnotfound with message ' resource tform1 no found ' " 错误,该dll在 vb,asp 中是可以调用的, 在delphi不知如何调用,请各位大虾详细指教,因为我是delphi初哥。

附:用foxpro6编译的 VFP_OLE.dll 文件的源程序如下:
DEFINE CLASS VFP_OLE_Server AS CONTAINER OLEPUBLIC
Procedure Init
* 程序 INIT 在载入 DLL 时自动运行
Set Talk Off
Set Safe Off
On Error Do Ole_Err With Error(),Lineno(),;
Message(),Program()
Set Exclusive Off
............
 
你的vfp6.0使用的类没有导入到delphi中来。
利用project中的import type library试试看.
 
我是delphi初哥,请详细指教.
 
to zitai

多谢,根据你的指引,终于编译成功,但和dll传递参数有问题,如:

dll 中的 源程序:
Procedure FoxCommand
Parameter cCMD
&cCMD
EndProc

delphi 根据 dll 的 tib 文件产生的 pas 文件中,该函数是:
function foxcommand(var ccmd: OleVariant): OleVariant
safecall;

我的调用形式是:
var
hh: OleVariant
begin

hh:=' wait '+ ' " ok " ' + ' window '
VFPOLE.FoxCommand(hh)

end;

编译出错信息: [Error] Unit2.pas(34): Missing operator or semicolon

还望指教
 
后退
顶部