c# 调用api播放MP3问题
http://www.yesky.com/182/1898182.shtml参考代码在这其中有2点我不明白第一点谁能告诉我一下代码什么意思publicclassAPICl...
http://www.yesky.com/182/1898182.shtml参考代码在这其中有2点我不明白第一点谁能告诉我一下代码什么意思public class APIClass
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern int GetShortPathName (
string lpszLongPath,
string shortFile,
int cchBuffer
);
[DllImport("winmm.dll", EntryPoint="mciSendString", CharSet = CharSet.Auto)]
public static extern int mciSendString (
string lpstrCommand,
string lpstrReturnString,
int uReturnLength,
int hwndCallback
);
}第二点APIClass.mciSendString("play media", TemStr, TemStr.Length , 0);这个函数在调用的时候我调试发现temstr字符串是空的,但是还是能够正常播放按理说应该APIClass.mciSendString("play media",mc.iName , mc.iName.Length, 0);现在这2个函数都能实现播放指定歌曲的作用但是我不知道为什么APIClass.mciSendString("play media", TemStr, TemStr.Length , 0);没指定路径却能正常播放 展开
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern int GetShortPathName (
string lpszLongPath,
string shortFile,
int cchBuffer
);
[DllImport("winmm.dll", EntryPoint="mciSendString", CharSet = CharSet.Auto)]
public static extern int mciSendString (
string lpstrCommand,
string lpstrReturnString,
int uReturnLength,
int hwndCallback
);
}第二点APIClass.mciSendString("play media", TemStr, TemStr.Length , 0);这个函数在调用的时候我调试发现temstr字符串是空的,但是还是能够正常播放按理说应该APIClass.mciSendString("play media",mc.iName , mc.iName.Length, 0);现在这2个函数都能实现播放指定歌曲的作用但是我不知道为什么APIClass.mciSendString("play media", TemStr, TemStr.Length , 0);没指定路径却能正常播放 展开
1个回答
2013-11-15
展开全部
C#使用DllImport来访问非托管资源。这段代码访问的是kernel32.dll和winmm.dllwinmm.dll是Window系统提供给程序员们的API,里面封装了很多函数。但是在C#中不能直接使用,必须使用extern关键字来告诉系统,让系统执行到此处时,自己去找winmm.dll里面的mciSendString的函数。由于mciSendString函数需要4个参数,public static extern int mciSendString (
string lpstrCommand,
string lpstrReturnString,
int uReturnLength,
int hwndCallback
);
string lpstrReturnString,
int uReturnLength,是调用此函数后的返回值。我们现在只是要放首MP3而已,因此可以随便给一个变量名。
string lpstrCommand,
string lpstrReturnString,
int uReturnLength,
int hwndCallback
);
string lpstrReturnString,
int uReturnLength,是调用此函数后的返回值。我们现在只是要放首MP3而已,因此可以随便给一个变量名。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询