我用vc6.0写了一个动态库wave.dll,在vb6.0中调用。在vb 的 module中有如下定义:
Private hInstWaveDll As Long'//加载wave.dll
Public Function Load_WaveDll() As Boolean Dim dwErr As Long hInstWaveDll = LoadLibrary("Wave.dll")
If hInstWaveDll = 0 Then
dwErr = GetLastError()
Load_WaveDll = False
Else
Load_WaveDll = True
End If
End Function'//释放wave.dll
Public Function Free_WaveDll() As Boolean If hInstWaveDll = 0 Then
Free_WaveDll = True
Else
Free_WaveDll = FreeLibrary(hInstWaveDll)
hInstWaveDll = 0
End If
End Function
...
界面部分有如下定义:
Private Sub Form_Load() If Load_WaveDll = False Then
MsgBox "加载Wave.dll失败,退出程序", vbInformation, "提示"
Unload Me
Exit Sub
End IfEnd SubPrivate Sub Form_Unload(Cancel As Integer)
If Free_WaveDll = False Then
MsgBox "卸载wave.dll失败,退出程序", vbInformation, "提示"
Exit Sub
End If
End Sub...第一次执行程序,完全正常。
Load_WaveDll()函数返回值为TRUE.
执行hInstWaveDll = LoadLibrary("Wave.dll")后
hInstWaveDll不等于0.
Free_WaveDll()函数返回值为TRUE.
第二次再执行程序,出错。现象为:
Load_WaveDll()函数返回值为FALSE。
Load_WaveDll()函数中 :
执行hInstWaveDll = LoadLibrary("Wave.dll")后
hInstWaveDll=0说明"Wave.dll"没有加载成功。
执行dwErr = GetLastError()后dwErr=0。
第二次再执行程序为什么"Wave.dll"加载不进来?
Private hInstWaveDll As Long'//加载wave.dll
Public Function Load_WaveDll() As Boolean Dim dwErr As Long hInstWaveDll = LoadLibrary("Wave.dll")
If hInstWaveDll = 0 Then
dwErr = GetLastError()
Load_WaveDll = False
Else
Load_WaveDll = True
End If
End Function'//释放wave.dll
Public Function Free_WaveDll() As Boolean If hInstWaveDll = 0 Then
Free_WaveDll = True
Else
Free_WaveDll = FreeLibrary(hInstWaveDll)
hInstWaveDll = 0
End If
End Function
...
界面部分有如下定义:
Private Sub Form_Load() If Load_WaveDll = False Then
MsgBox "加载Wave.dll失败,退出程序", vbInformation, "提示"
Unload Me
Exit Sub
End IfEnd SubPrivate Sub Form_Unload(Cancel As Integer)
If Free_WaveDll = False Then
MsgBox "卸载wave.dll失败,退出程序", vbInformation, "提示"
Exit Sub
End If
End Sub...第一次执行程序,完全正常。
Load_WaveDll()函数返回值为TRUE.
执行hInstWaveDll = LoadLibrary("Wave.dll")后
hInstWaveDll不等于0.
Free_WaveDll()函数返回值为TRUE.
第二次再执行程序,出错。现象为:
Load_WaveDll()函数返回值为FALSE。
Load_WaveDll()函数中 :
执行hInstWaveDll = LoadLibrary("Wave.dll")后
hInstWaveDll=0说明"Wave.dll"没有加载成功。
执行dwErr = GetLastError()后dwErr=0。
第二次再执行程序为什么"Wave.dll"加载不进来?
解决方案 »
- 关于gina的问题
- 150分, 却没解决一个 关于按钮与BMP的问题 完成就给分
- WIN下SOCKET如何设置超时
- 关于SetWindowOrg()的基础问题
- WISE Install System中如何加入uninstall 的shortcut
- 请问:如何配置Telnet服务器(这么提对吗)?立即结帐,谢谢!
- 紧急问题,使用DrawText()避免了显示汉字出现乱码的现象,但是,当一次显示不完时,如何依次显示剩下的部分....
- 急急!在vc中如何实现象word插入对象那样,直接在对话框上插入显示一个Excel文件
- 主,弱弱地问一下:
- 对STL有兴趣的朋友来看看??(由于刚注册,只能给20分)
- 如何访问一个ActiveX中包含的ActiveX的属性和方法呢?(在线等待) 高分
- 在硬件/嵌入开发中的sos,一定给分,谢谢!
就是说函数的调用规范要一致。