【发布时间】:2013-12-12 12:58:58
【问题描述】:
我在 Delphi 中创建了一个 DLL,它必须从其他参数中接收来自 Visual Fox Pro 的字符串数组。
我尝试了不同的方法来发送数据,但通常我得到的是“声明 DLL 调用导致异常”,我不确定问题是否是我在 VFP 上发送的变量类型或我在 Delphi 上收到的类型。
我们已经尝试从 VFP 发送一个字符串数组
Local arString[3]
arString[1] = 'Text1'
arString[2] = 'Text2'
arString[3] = 'Text3'
Declare integer callDLL in (dllfile) string, string, string
CallDLL('firstvar', 'secondvar', arString)
在德尔福上:
type Str: Array[1..3] of string;
function CallDLL(firstvar, secondvar: PAnsiChar; S: Str):Integer; stdcall ;
begin
ShowMessage(S[0]) ;
...
end;
exports CallDLL ;
在我添加字符串数组之前,DLL 工作正常,所以不是其他参数的整体构造。
知道我做错了什么吗?
谢谢, TZ
【问题讨论】:
-
It seems没有可用的数组类型参数,因此您很可能需要在 FoxPro 端连接这些字符串并在 Delphi 端解析它们。此外,您已声明该函数将返回一个整数,而在 Delphi 端您不返回任何内容。
标签: arrays delphi dll visual-foxpro