我在 delphi 中调用 C++ DLL 时遇到一些问题,DLL 是用 Labview 编写的,但 DLL 语法都是 C++,我认为主要问题是尝试将数据作为双动态数组传递给函数(其中本质上是一个指针对吗?)
.h头文件中的函数定义为:
int16_t __cdecl NRELIVparExtract(
double voltageV[],
double currentA[],
int32_t nDataPoints,
uint16_t fitAlgorithim,
int16_t *twoOrLessPoints,
double *Voc,
double *Isc,
double *Vmp,
double *Imp
);
我试图用来调用它的德尔福代码是:
public { Public declarations }
end;
var
Function NRELIVparExtract (voltageV, currentA: Array of Double; nDataPoints :Integer;
fitAlgorithim :Word; Var twoOrLessPoints : SmallInt;
Voc, Isc, Vmp, Imp : Double): smallint ; CDecl;External IVparExtract_NREL.dll'
废话
procedure TFormMainIVanalysis.ExtractNREL(InputFileName : ShortString);
var
VoltArray, CurrArray : Array Of double;
blah
Begin
NRELresult := NRELIVparExtract(VoltArray,CurrArray,NpointsForFitting, fitAlgorithm, twoOrLessPoints, LVoc, LISc, LVmpp, LImpp);
当编译器到达我的 delphi .dpr 中的开始行时,我得到不同的访问冲突错误,或者我得到 IVparExtract_NREL.dll 未找到
非常欢迎任何建议,干杯,布赖恩