当前位置: 代码迷 >> PB >> 怎么定义dll文件里面的函数调用
  详细解决方案

怎么定义dll文件里面的函数调用

热度:78   发布时间:2016-04-29 08:16:15.0
如何定义dll文件里面的函数调用?
求助,一个c语言编写的dll文件(encrypt.dll),里面有一个加密函数:int jiami(char *source,char *target) 其中返回int类型,*source是输入字符串,*target是返回的加密字符串,我在pb中要声明这个函数并调用,请教如何写?

我是这样定义的: 
Function ULong jiami(Ref String source,Ref String target ) Library "encrypt.dll"

但是无法使用,如果这样调用了,第一个参数是输入,第二个参数是即将获得的目标,请问如何得到?

String ls_mm_jiami,ls_ource
ls_ource='123'
if jiami(ls_ource,ls_mm_jiami)=0 then MessageBox("",ls_mm_jiami)

以上代码报错:
Error: Bad runtime function reference at line 8 in clicked event of object cb_7 of w_xf

------解决方案--------------------
encrypt.dll要放在程序所在目录.
pb10以下:
Function ULong jiami(String source,Ref String target ) Library "encrypt.dll"

pb10及以上:
Function ULong jiami(String source,Ref String target ) Library "encrypt.dll" alias for "jiami;Ansi"
------解决方案--------------------
ref调用string,需要事先分配内存空间

String ls_mm_jiami,ls_ource
long ll_Ret

ls_ource='123'
ls_mm_jiami = Space(20)

ll_Ret = jiami(ls_ource,ls_mm_jiami)
  相关解决方案