我用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"加载不进来?