VC 调用 DLL问题
我有一DLL连接库,在VB里是这样调用的
Public Declare Function PortOpen Lib "BC245G.dll" (ByVal Port As Long) As Long
Dim ret As Integer
ret = PortOpen(edtCommport.Text)
If ret <> 1 Then
Label1.Caption = "打开串口失败"
Else
Label1.Caption = "打开串口成功"
End If
VB里调用没问题
然后我在VC里这样调用
HINSTANCE hModule = LoadLibrary("BC245G.dll");
if(hModule)
{
typedef long int (__stdcall *PortOpen) (long int);
PortOpen Open = (PortOpen)::GetProcAddress(hModule, "PortOpen");
if(Open)
{
CString str;
str.Format("%d",m_port);
str="没有发现COM"+str+"或被占用";
m_bSerialPortOpened[m_port-1]=true;
if(Open(m_port)!=1)
{
m_bSerialPortOpened[m_port-1]=false;
AfxMessageBox(str);
}
}
FreeLibrary(hModule);
hModule = NULL;
}
else AfxMessageBox("dll文件未找到!");
这是一个打开串口的程序,其中if(Open(m_port)!=1) 返回值是1,代表是成功的,但是实际上想打开的串口并没有打开,可为什么返回值还是正确的呢?请各位高手帮忙帮忙!