第一次在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来读写数据,但是现在还不知道该怎么调用,请大人们来教教我呢?
解决方案 »
- Delphi之reportBuilder報表選中某行或多行打印問題
- 一个0字节且没有子目录的空目录,用RemoveDir无法删除,会是什么原因?!
- delphi 中self.free
- 如何让MDI 窗体菜单具有当前设置的皮肤效果
- listView的删除问题?
- 有没有人用过xpControls控件?怎么包里少一个.res文件阿!xpcontrolsD7.res没有。
- adotable1.loadfromfile后,如何知这个adotable1里数据的表名,load后tablename = 文件名了
- 困惑两个星期,多个PDF打印问题
- 拿分啊
- 有谁用delohi开发过service类型的程序,求救
- 请大家帮忙解释一下流的概念及作用.
- ★★以命令行方式输出调试信息的疑惑★★
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的目的。。