如何定义dll文件里面的函数调用?

tomorrower 2012-05-30 08:14:25
求助,一个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
...全文
136 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomorrower 2012-05-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

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" ……
[/Quote]

问题依旧,我是PB9
pb10以下:
Function ULong jiami(String source,Ref String target ) Library "encrypt.dll"

跟我的相比,你是第一个参数前面没有ref

但是我在pb中该如何调用这个函数呢?这种方式,一般函数都是用函数的返回值直接赋值给变量的
参数列表里面,即有输入又有输出的没见过怎么用





xuam 2012-05-30
  • 打赏
  • 举报
回复
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"
ribut9225 2012-05-30
  • 打赏
  • 举报
回复
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)

680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧