看看这函数怎么调?我搞了好久,请高手帮忙,关于DLL函数的调用。
VC中的声明
int ReadSrvReq(char* ctrlMsg, char* subCode,
char* contentMsg, int* msgLen,
int timeOut)
DELPHI中声明:
TReadSrvReq=function(ctrlMsg:Pchar;subCode:Pchar;contentMsg:Pchar; msgLen:integer;timeOut:integer):integer;stdcall;
调用:
mw:HWND;
mt:TCSGP_ReadConf;
mt1: TReadSrvReq;
a:integer;
st:string;
p:pchar;
ctrlMsg:string;
subCode:string;
contentMsg:string;
msgLen:integer;
time1:String;
mw:=loadlibrary('CSGPAPI_DLL.dll');
if mw<>0 then
try
mt1:=GetProcaddress(mw,'ReadSrvReq');
if assigned(mt1) then
a:=mt1(@ctrlMsg,@subCode,@contentMsg, msgLen,5);
finally
FreeLibrary(mw);
end;
到了这步a:=mt1(@ctrlMsg,@subCode,@contentMsg, msgLen,5);就出错了。
请问DLL函数应怎么声明,参数怎么传呢?
int ReadSrvReq(char* ctrlMsg, char* subCode,
char* contentMsg, int* msgLen,
int timeOut)
DELPHI中声明:
TReadSrvReq=function(ctrlMsg:Pchar;subCode:Pchar;contentMsg:Pchar; msgLen:integer;timeOut:integer):integer;stdcall;
调用:
mw:HWND;
mt:TCSGP_ReadConf;
mt1: TReadSrvReq;
a:integer;
st:string;
p:pchar;
ctrlMsg:string;
subCode:string;
contentMsg:string;
msgLen:integer;
time1:String;
mw:=loadlibrary('CSGPAPI_DLL.dll');
if mw<>0 then
try
mt1:=GetProcaddress(mw,'ReadSrvReq');
if assigned(mt1) then
a:=mt1(@ctrlMsg,@subCode,@contentMsg, msgLen,5);
finally
FreeLibrary(mw);
end;
到了这步a:=mt1(@ctrlMsg,@subCode,@contentMsg, msgLen,5);就出错了。
请问DLL函数应怎么声明,参数怎么传呢?
...全文
相关推荐
加载dll并调用dll中的函数
详细描述如何加载一个动态链接库(DLL) 和调用链接库中的函数(提供有代码)
我这个情况,Qt怎么调用Dll内的函数???大佬帮我
//我得到了一个值uPS,我把curUSBPL内的值全设为0,然后我把uSP的值给curUSBPL的结构体指针uuppss,如果List为空,那么我把curUSBPL给它,否则,我把List设为curUSBPL的链表的下一个,然后把curUSBPL传给List,编号加一。void getUSBPrinter_CallbackProc(getprinterinfo_usbPrinterStateParms_Type *usbPrinterState)//获取打印机回调过程。//援引 add() 函数。
亲测可用,java 成功调用dll函数。包含调用回调函数,springboot版本。最近由于公司业务需要,要调用dll文件,用JNA调用。
亲测可用,java 成功调用dll函数。包含调用回调函数,springboot版本。最近由于公司业务需要,要调用dll文件,用JNA调用。
VC++编写DLL导出函数及其调用方法
实例在Visual Studio 2008 SP1 IDE中如何创建、编写和导出DLL,以及如何调用生成的DLL。
C# 调用C++DLL(函数参数包含指针)
C#调用C++DLL,C++DLL中的函数参数包含指针。 绝对可用。



