问题1:这是程序的问题,你得自己调试问题2:你应该这样写:Declare Function 这里写你想要的任意的名字 Lib "Phone.dll" Alias "Call" (ByRef   sPhoneCode   As   String)   As   Boolean

解决方案 »

  1.   

    TO huhu0013 
    1 我知道是程序的问题,可是我就没有搞明白错在哪里!
    2 如果我解决完问题一才能测试问题二.谢谢帮忙.
    能解决就给分.
      

  2.   

    虽然huhu0013没有最后帮我解决问题,但是他给我应当解决了问题2,给他一半分了.
    没有结贴呢,大家帮忙啊.
      

  3.   

    你这个LoadLibrary是什么?
    看你的这个DLL,应该先调用InitDevice来初始化硬件吧?Dim   LibName   As   Long 
            LibName   =   LoadLibrary("UsbPhone") 
    On   Error   GoTo   Error 
            
            InitFlag   =   InitDevice(Me.hWnd,   s)
      

  4.   

    Phone.dll需要修改,并将Boolean改成Long型变量
      

  5.   

    LibName       =       LoadLibrary("UsbPhone")是发贴时写错了其实是LibName       =       LoadLibrary("Phone.dll") 
      

  6.   

    to chenjl1031 
    Phone.dll我不能改,这个库在VC和Delphi下都没有问题,可怜的VB...
      

  7.   

    1.
    Declare Function InitDevice Lib "Phone.dll" (ByVal hCallBackWin As Long, ByVal nMsgID As Long) As Byte在 C++ 中 bool 为 1 字节,true = 1, false = 0
    在 VB 中, Boolean 也为 1 字节,True = -1, False = 02.
    去掉 LibName   =   LoadLibrary("UsbPhone"),不需要 3.
    Declare Function 这里写你想要的任意的名字 Lib "Phone.dll" Alias "Call" (ByVal sPhoneCode As String) As Byte
    字符串已经是指针,要用 Byval.至于返回错误 4,要查 Dll 的文档,看它定义为什么错误。
      

  8.   

    To of123 
    1\如果按照这样写:Declare   Function   InitDevice   Lib   "Phone.dll"   (ByVal   hCallBackWin   As   Long,   ByVal   nMsgID   As   Long)   As   Byte 
    VB都终止不了.
    2\我不能确定是否可以去掉.虽然我到目前为止没有找到解决的办法,但是还是要谢谢大家.