记录在使用pb过程中的点点滴滴……
1、今天在编写程序调用delphi编译的dll组件时,遇到个问题,就是在运行完程序后,都会提示程序出错,奇怪的是,调用dll里的函数都能够正常运行的。在往是否是内存溢出引起的呢,百度一下,果然找到了原因:因dll中的函数存在返回值的,而我是直接命名变量后引用传出值,问题就在这里。因为下面一段话给了我提示:
delphi的pchar就是传址的,可以用ref string或 ref char xx[255],如果用ref string的话必须在调用前分配内存空间,方式为
x = space(255)
gf_word(x,0)
就这样,我直接在需要传出值的变量,人声明定义的时候,都先分配内存空间。再运行程序的时候,讨厌的系统出错提示终于没有再出来啦。
2、在pb调用delphi编译的dll时,如果函数返回的值是Integer,则在pb中应long类型。
之后,下面是调用的格式:
FUNCTION LONG FunName(string param1,...) library "HoPolicy.dll"