我在用VB调用PB的DLL时,DLL中的所有函数都可调用成功,但有一函数,调用是成功的,但无法获得出参!PB中定义的此出参是String类型,且DLL约束中,要求VB引值时,按地址传递!而我在VB中定义的也是String类型,但总是获得一空值的出参!但在PB中,调用此DLL一切正常!郁闷中,求解!

解决方案 »

  1.   

    给你几个建议,不一定能解决你的问题,但你可以广泛的试一下,也许对你有帮组:dim s as string 
    PBfunc ...,byval strptr(s),....或
    Dim a(0 To 9) As Byte
    Dim s As StringPBfunc ....,byval varptr(a(0)),...s = StrConv(a, vbUnicode)
    MsgBox s
      

  2.   

    我是楼主,主题中的问题已经解决了,经查证,不是VB程序的原因,而是PB的DLL的问题!感谢qiqi5521() 的热心帮助!
    现还有一个问题,请各位水友支个招!还是前面的这个项目,项目中遇到这样一个问题!第三方软件商纷发的PB的DLL需要在我们的系统中进行纷发,但以上的DLL在有的机器上可以注册成功,而在有的机器上则不能注册成功!而第三方明确要求是需要注册的!请问这种情况是什么原因造成的!而我们咨询了第三方软件商(此DLL的提供者,用PB开发的),他们回答是说可以注册了!这就不得其解了!求助!
      

  3.   

    没有用过PB,但是有个在VB上同样出现过的问题的解决方法可以试试:
    写个空的PB程序,只引用VB里要引用的DLL,然后制作成安装包,在需要VB调用的机器上安装一下,应该可以解决此类问题
      

  4.   

    PB是第三方提供的,而且我也没有用过PB!我试试看!感谢WallesCai!还有其它的可能吗?
      

  5.   

    我是楼主,以上的问题已经解决,经查证,还是每三方的PB DLL在纷发时有错误,才导致注册失败的!