主题:调用mciSendString出错
我使用API函数mciSendString来播放音乐,但是老是出错,系统提示说如下:
[color=FF0000]对 PInvoke 函数“mci!WindowsApplication1.Form1::mciSendString”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。[/color]我所写的代码如下:
Public Declare Auto Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal Command As String, ByVal ReturnString As String, ByVal ReturnLength As Long, ByVal Callback As Long) As Integer
Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
OpenFileDialog1.ShowDialog()
If OpenFileDialog1.FileName <> "" Then
mciSendString("close all", 0, 0, 0)
mciSendString("open " & OpenFileDialog1.FileName & " waveaudio alias song", 0, 0, 0)
lblPath.Text = OpenFileDialog1.FileName
End If
End Sub
我其他事件中凡是出现这个API函数的都会出现以上的错误,请问这是什么呀?
[color=FF0000]对 PInvoke 函数“mci!WindowsApplication1.Form1::mciSendString”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。[/color]我所写的代码如下:
Public Declare Auto Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal Command As String, ByVal ReturnString As String, ByVal ReturnLength As Long, ByVal Callback As Long) As Integer
Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
OpenFileDialog1.ShowDialog()
If OpenFileDialog1.FileName <> "" Then
mciSendString("close all", 0, 0, 0)
mciSendString("open " & OpenFileDialog1.FileName & " waveaudio alias song", 0, 0, 0)
lblPath.Text = OpenFileDialog1.FileName
End If
End Sub
我其他事件中凡是出现这个API函数的都会出现以上的错误,请问这是什么呀?