第一次在delphi中调用dll,不会用,想大家帮忙指教一下。别人已经写好vc的dll,结构是这样的:typedef struct dstruc
{
double x;
double y;
double td[2];
bool md[10];
} DLLstruc ;
extern "C" __declspec(dllexport) DLLstruc* DLLstrucget(DLLstruc* ds);
我现在主要是在delphi中调用该dll来读写数据,但是现在还不知道该怎么调用,请大人们来教教我呢?
{
double x;
double y;
double td[2];
bool md[10];
} DLLstruc ;
extern "C" __declspec(dllexport) DLLstruc* DLLstrucget(DLLstruc* ds);
我现在主要是在delphi中调用该dll来读写数据,但是现在还不知道该怎么调用,请大人们来教教我呢?
x: double;
y: double;
td: array[0..1] of double;
md: array[0..9] of Boolean;
end;
DLLstruc = dstruct;
PDLLstruc = ^DLLstruc;function DLLstrucget(ds: PDLLstruc):PDLLstruc; stdcall;external 'xxx.dll';name 'DLLstrucget';上面是静态调用
动态的话 稍微复杂点type Dllstrucget = function(PDllStruct);PDllStruct;stdcall;var
hInst:HINSTANCE;
MyFunc: Dllstrucget;
stuct: DLLstruc; hInst := LoadLibrary('***.dll');
if hInst = 0 then Exit; MyFunc := GetProcAddress(hInst, 'Dllstrucget'); MyFunc(@stuct);...
type dstruct = record // packed record
x: double;
y: double;
td: array[0..1] of double;
md: array[0..9] of Boolean;
end;
DLLstruc = dstruct;
PDLLstruc = ^DLLstruc;function DLLstrucget( ds:PDLLstruc ): PDLLstruc ; cdecl; external 'XXXXX.dll';
但是这样无法调试通过的,是什么原因呢,能不能再提示下?
function GetDLLData1:PPGlobalDLLData;external 'csharedll.dll' name 'GetDLLData1';
但是这样无法调试通过的,是什么原因呢,能不能再提示下?// 你看看里面的参数 是一个结构体的指针呀 不是一个string...
比如
var
myDllStruct:DLLstruc;
DLLstrucget(@myDllStruct);
ShowMessage(FloatToStr(myDllStruct.x));
对了,先谢谢你一下,都这么晚了:)
// 你如果这样做 觉得可以满足你的要求的话 就可以呀var
myDllStruct:DLLstruc;
myDllStruct.x := 1; // 对其成员初始化 DLLstrucget(@myDllStruct);
ShowMessage(FloatToStr(myDllStruct.x)); // 这个结构体的成员的值可能被DLL改变
所以 此时 myDllStruct.x 就不一定是1 这样就是调用这个DLL的目的。。