我有一个dll库。我已经为delphi类型排除了内存单元。
这样,函数声明的适当Boolean
类型是什么?
是BOOL
还是其他什么?
问题在于方法签名:
function Test(Param1: BOOL; Param2: BOOL; docContent: PCharArray): Integer;
当程序离开该功能时,我得到AV。
我认为这两个第一个参数的数据类型存在问题。
答案 0 :(得分:6)
BOOL
适用于布尔类型。它是Windows类型,因此您将在 Windows.pas 的所有功能中看到它。
从DLL函数返回时的访问冲突通常表明您的调用约定错误 - 默认调用约定为register
,但您可能需要stdcall
或cdecl
。在声明的末尾添加它:
function Test(Param1: BOOL; Param2: BOOL; docContent: PCharArray): Integer; stdcall;