在调用外部dll中的函数时,经常会用到指针。那么在pb中如何实现呢?
先看一个dll说明文档中的函数声明:
Function GetFamInfo(info:pchar,out flag:integer):pchar;stdcall; // flag是一个出口参数 函数的返回值和第一个参数都是指针类型
pchar是delphi中的指针类型。那么我们在pb中应该怎么声明和调用呢?
首先在pb的declare global external functions中声明外部dll函数:
public function long GetFamInfo(long info, ref int flag) library "nccm_interface.dll" ALIAS FOR "GetFamInfo"
然后在工程中调用:
long rtn
int flag
long famInfo
rtn = GetFamInfo(famInfo, flag)
sle_1.Text = String(flag)
sle_2.Text = string(rtn, "address")
long类型在pb中可以作为指针类型,当long作为一个字符型指针时,可以用String(long,"address")这个方法,读出long指针地址真所保存的字符串,并付给一个字符型变量。