调用vc些的dll时没有任何反应???请教??/

lonking 2005-01-17 12:42:13
vc中函数定义 int Em_ChkUsrPIN(unsigned int Hw, unsigned char *PIN);

vc中调用例程:
unsigned char m_pw1[30];
unsigned int DEVICETYPE
....
if(Em_ChkUsrPIN(DEVICETYPE,m_pw1)!=0)
....

我在pb中调用:
FUNCTION int Em_ChkUsrPIN(uint Hw, ref string PIN ) LIBRARY "ic_lib.dll"

脚本:
string vsPw
int virt
....
virt= DAIC_ChkUsrPIN(3,ref vsPw)
....

运行后系统没有任何反应,呈现死机状!为什么??

请问高手如何解决???
...全文
90 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
commanddos 2005-03-22
  • 打赏
  • 举报
回复
这个DLL不是标准的DLL,不能通过FUNCTION int Em_ChkUsrPIN(uint Hw, ref char PIN[] ) LIBRARY "ic_lib.dll"这种方式调用。
采用oleobject的方式试一试。见http://community.csdn.net/Expert/topic/3836/3836965.xml?temp=.2349817
balloonman2002 2005-01-17
  • 打赏
  • 举报
回复
试试这样:

FUNCTION int Em_GetICExists( uint Hw, ref char ICExistsFlag[]) LIBRARY "ic_lib.dll"

调用:

int rv
Char ICExistsFlag[]

rv = Em_GetICExists(3, ICExistsFlag)
progrose 2005-01-17
  • 打赏
  • 举报
回复
应该是在pb中没有指针(char *PIN)的概念, 修改dll中的函数, 再试试
zhouweiwansui 2005-01-17
  • 打赏
  • 举报
回复
FUNCTION int Em_ChkUsrPIN(uint Hw, ref char PIN[] ) LIBRARY "ic_lib.dll"
使用前先分配空间:pin = space(255)
WorldMobile 2005-01-17
  • 打赏
  • 举报
回复
第一种方法:你把VC里的unsigned char *PIN 改成unsigned string *PIN
然后在PB里这样声明
FUNCTION int Em_ChkUsrPIN(uint Hw, ref string PIN ) LIBRARY "ic_lib.dll"

再一种方法:你把PB里的声明改为
FUNCTION int Em_ChkUsrPIN(uint Hw, ref char PIN[] ) LIBRARY "ic_lib.dll"
然后在PB里调用再试试

如果还不行的话,建议你把VC里的参数改掉,别这么用了
li_d_s 2005-01-17
  • 打赏
  • 举报
回复
用vc再包装一次,很快的

680

社区成员

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

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