to chenjl1031 Phone.dll我不能改,这个库在VC和Delphi下都没有问题,可怜的VB...
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 的文档,看它定义为什么错误。
To of123 1\如果按照这样写:Declare Function InitDevice Lib "Phone.dll" (ByVal hCallBackWin As Long, ByVal nMsgID As Long) As Byte VB都终止不了. 2\我不能确定是否可以去掉.虽然我到目前为止没有找到解决的办法,但是还是要谢谢大家.
1 我知道是程序的问题,可是我就没有搞明白错在哪里!
2 如果我解决完问题一才能测试问题二.谢谢帮忙.
能解决就给分.
没有结贴呢,大家帮忙啊.
看你的这个DLL,应该先调用InitDevice来初始化硬件吧?Dim LibName As Long
LibName = LoadLibrary("UsbPhone")
On Error GoTo Error
InitFlag = InitDevice(Me.hWnd, s)
Phone.dll我不能改,这个库在VC和Delphi下都没有问题,可怜的VB...
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 的文档,看它定义为什么错误。
1\如果按照这样写:Declare Function InitDevice Lib "Phone.dll" (ByVal hCallBackWin As Long, ByVal nMsgID As Long) As Byte
VB都终止不了.
2\我不能确定是否可以去掉.虽然我到目前为止没有找到解决的办法,但是还是要谢谢大家.