delphi如何调用C/C++的DLL ?(100分)

  • 主题发起人 主题发起人 waterbird
  • 开始时间 开始时间
W

waterbird

Unregistered / Unconfirmed
GUEST, unregistred user!

as title. 具体该怎么做?会不会有参数不兼容的问题?
如在VC++ DLL中要调用结构怎么办?
请尽量详细点,多谢!
 
waterbird:
这个问题好象有人问过,但没什么结果!
我在如何开发dll的问题里面贴了一个
转载的TIPS,不知道对你有用处没 :)
 
waterbird:
你的邮件收到了,你要的东西发过去了.
 
首先你得生成标准的Win32 Dll
VC的扩展的dll不行.
在Delphi你用WinAPI
LoadLibrary()
GetProcAddress()
FreeLibrary()
 
统统用指针,兼容性问题就小多了。
 
只要大小一样,多数情况没有问题
 
此处使winsock.pas 中的一例,你可以参考,其中传递了两个结构PFDSet和PTimeVal.
const winsocket = 'wsock32.dll';
type
PFDSet = ^TFDSet;
TFDSet = record
fd_count: u_int;
fd_array: array[0..FD_SETSIZE-1] of TSocket;
end;

PTimeVal = ^TTimeVal;
timeval = record
tv_sec: Longint;
tv_usec: Longint;
end;
TTimeVal = timeval;
function select;
external winsocket name 'select';//接口部分
implementation
function select(nfds: Integer;
readfds, writefds, exceptfds: PFDSet;
timeout: PTimeVal): Longint;
stdcall;
//参数部分

 
用范围大的,好使!
 
多人接受答案了。
 
后退
顶部