gpt4 book ai didi

delphi - LPLONG的Delphi等效项是什么?

转载 作者:行者123 更新时间:2023-12-04 22:58:39 37 4
gpt4 key购买 nike

我必须从Delphi(当前为Delphi7)访问用c编写的DLL的几个功能。
当参数为标量时,我可以做到没有问题
(这要归功于这个出色的网站中提供的示例!),但是当参数中存在指向Longs数组的指针时,我已经停留了一段时间。

这是函数之一的头文件中的定义:


BOOL __stdcall BdcValida(HANDLE h,LPLONG opcl);


(opcl是一个long数组)

这是我的Delphi代码的一部分:

type
TListaOpciones= array of LongInt; //I tried with static array too!
Popcion = ^LongInt; //tried with integer, Cardinal, word...
var
dllFunction: function(h:tHandle; opciones:Popcion):boolean;stdcall;
arrayOPciones:TListaOpciones;
resultado:boolean;
begin
.....
I give values ​​to aHandle and array arrayOPciones
.....
resultado:=dllFunction(aHandle, @arrayopciones[0]);
end;


执行该错误消息是:


“项目xxx引发了太多连续的异常:访问冲突
在0x000 ..“


Delhpi中LPLONG的等效项是什么?还是我以错误的方式调用该函数?
谢谢!

最佳答案

LONG映射到LongintLPLONG映射到^Longint。因此,您已经正确翻译了该类型。

但是,您翻译的BOOL错误。在Delphi中应为BOOLLongBool。您可以使用任何一个,前者是后者的别名。

您的错误在于看不见的代码或细节。也许您没有分配数组。数组大小可能不正确。可能是无效的句柄。也许以前对DLL的调用未能检查错误。

关于delphi - LPLONG的Delphi等效项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54023379/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com