Delphi 如何调用 VC 编写的 DLL?
我有一个用 VC 写的 DLL 动态链接库(输出lib文件)
我现在想在Delphi 下调用该动态链接库,该如何调用?
问题点数:20、回复次数:5Top
1 楼runsheng()回复于 2005-03-07 17:19:22 得分 5
跟一般的DLL调用一样,两者的数据类型要互相兼容。
例(vc) long i; -> i longint; (delphi)
(vc) char s[100]; -> s array[0..100] of char;(delphi) 用StrPCopy()赋值Top
2 楼xuxiaozhao_3411(小小)回复于 2005-03-07 17:35:15 得分 5
详尽Top
3 楼quester(阿华)回复于 2005-03-07 17:45:02 得分 5
能不能再讲具体点Top
4 楼astrohand(手)回复于 2005-03-07 18:19:06 得分 5
静态调用
function RealeaseCOMObj(ID: integer): integer; stdcall; external 'realTime32.dll';Top
5 楼StarLookForing(刀剑如梦)回复于 2005-03-07 18:50:05 得分 0
为什么我这样调用不行哦:
----------------------------------------------------------------
【VC】:
MyStruct *strDll = new MyStruct;
MyStruct* __stdcall change(int YourInputNumber)
{
strDll->c = YourInputNumber*9;
strDll->x = YourInputNumber*2;
return strDll;
}
------------------------------------------------------------------------------
【Delphi】
type MyRec = record
x:integer;
c:integer;
end;
type
pMyRec = ^MyRec;
procedure TForm1.Button1Click(Sender: TObject);
var
i :integer;
myproc: Pointer;
pmr :pMyRec;
c :integer;
begin
i:= 3;
pmr := Change(i);
ShowMessage(s);
i := pmr.x; // 这里返回的值不对,应该是6,结果是3
c := pmr.c; // 这里返回的值不对,应该是27,结果是-823838998
end;
Top




