DELPHI是所有的函数都支持吗?如果想使个API饿DELPHI里没有定义,请问该怎么办啊?比如ws2_32.dll里有个WSAEnumProtocolsA,在

  • 主题发起人 主题发起人 aipingren
  • 开始时间 开始时间
A

aipingren

Unregistered / Unconfirmed
GUEST, unregistred user!
DELPHI是所有的函数都支持吗?如果想使个API饿DELPHI里没有定义,请问该怎么办啊?比如ws2_32.dll里有个WSAEnumProtocolsA,在DELPHI里就没有定义,请问该怎么使用啊?》(30分)<br />DELPHI是所有的函数都支持吗?如果想使个API饿DELPHI里没有定义,请问该怎么办啊?比如ws2_32.dll里有个WSAEnumProtocolsA,在DELPHI里就没有定义,请问该怎么使用啊?》
 
在d5的help里可以查到参数,然后手动引用。<br>用external<br><br>procedure DoSomething; external 'MYLIB.DLL';<br><br>
 
不会做的话,看看delphi的已经声明的函数不就知道了,特别是类型不会转换的时候,挺<br>管用的。
 
const<br>&nbsp; WINSOCK2_DLL = 'ws2_32.dll';<br><br>function WSAEnumProtocolsA( lpiProtocols : PInteger; lpProtocolBuffer : LPWSAProtocol_InfoA; var lpdwBufferLength : DWORD ) : Integer; stdcall;<br><br>implementation<br><br>function WSAEnumProtocolsA; external WINSOCK2_DLL name 'WSAEnumProtocolsA';
 
var<br>&nbsp; _WSAEnumProtocolsA: Pointer;<br><br>function WSAEnumProtocolsA;<br>begin<br>&nbsp; GetProcedureAddress(_WSAEnumProtocolsA, ws2_32, 'WSAEnumProtocolsA');<br>&nbsp; asm<br>&nbsp; &nbsp; mov esp, ebp<br>&nbsp; &nbsp; pop ebp<br>&nbsp; &nbsp; jmp [_WSAEnumProtocolsA]<br>&nbsp; end;<br>end;
 
同意 爱元元的哥哥
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部