dll文件参数的问题 ( 积分: 30 )

  • 主题发起人 主题发起人 ntjrr
  • 开始时间 开始时间
N

ntjrr

Unregistered / Unconfirmed
GUEST, unregistred user!
dll中的函数说明:<br>获取联系人信息<br>Syntax:<br>int&nbsp;&nbsp;GetPersonInfo&nbsp;(&nbsp;char&nbsp;*&nbsp;&nbsp;CardID,&nbsp;Char*&nbsp;&nbsp;DataBuffer&nbsp;);<br>Parameter<br>参数<br>参数 输入/输出 参数名 是否可空 类型<br>CardID IN 编号 N VARCHAR(10)<br>DataBuffer OUT 返回信息 <br>Return(s)&nbsp;:<br>&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;–&nbsp;&nbsp;Succuss<br>-1&nbsp;-&nbsp;Failure<br>DataBuffer说明:<br> 0户编号|1人员编号|2证号|3人员姓名<br><br><br>type<br>&nbsp;&nbsp;&nbsp;TFarProc&nbsp;=&nbsp;function...........;//问题1:这一块如何写<br>var<br>&nbsp;&nbsp;HInst:THandle;<br>&nbsp;&nbsp;FPointer:TFarProc;<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;HInst:=LoadLibrary('ABC.dll');<br>&nbsp;&nbsp;if&nbsp;HInst&gt;0&nbsp;then<br>&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FPointer:=GetProcAddress(HInst,'GetPersonInfo');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;@FPointer&lt;&gt;nil&nbsp;&nbsp;&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FPointer(12345678)&nbsp;&nbsp;&nbsp;&nbsp;//问题2这一块这样写行不行<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;ShowMessage('函数未发现');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FreeLibrary(HInst);<br>&nbsp;&nbsp;&nbsp;end<br>&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;ShowMessage('DLL文件未发现');<br>end;<br><br>问题3:还有就如何收取返回结果,比如我只要一个人员姓名,如何处理?
 
int&nbsp;&nbsp;GetPersonInfo&nbsp;(&nbsp;char&nbsp;*&nbsp;&nbsp;CardID,&nbsp;Char*&nbsp;&nbsp;DataBuffer&nbsp;);<br>TFarProc&nbsp;=&nbsp;function...........;//问题1:这一块如何写<br>TFarProc&nbsp;=&nbsp;function(const&nbsp;CardID:&nbsp;PChar;&nbsp;var&nbsp;DataBuffer:&nbsp;PChar):&nbsp;Integer;<br><br>FPointer(12345678)&nbsp;&nbsp;&nbsp;&nbsp;//问题2这一块这样写行不行<br>FPointer('12345678',&nbsp;DataBuffer)
 
前辈这个12345678是我任意写的,不是固定的,那么是不是要改为:<br>TFarProc&nbsp;=&nbsp;function(var&nbsp;CardID:&nbsp;PChar;&nbsp;var&nbsp;DataBuffer:&nbsp;PChar):&nbsp;Integer;<br>?<br>还有要不要加一个stdcall;?
 
好象一定要用const&nbsp;但认不出DataBuffer,不好编绎。
 
查了一些资料,是不是上面的DLL这种语法就是C语言写的?
 
FPointer('12345678',&nbsp;DataBuffer)&nbsp;认不出后面的DataBuffer
 
接受答案了.
 
后退
顶部