函数传递值问题
本帖最后由 llkoio 于 2013-01-22 12:51:50 编辑 为什么函数的实参 audio("Windows XP 启动.wav");在函数运行的时候 MusicName[MAX_PATH]的值是乱码呢
void audio(char MusicName[MAX_PATH])
{
char syspath[MAX_PATH];
memset(syspath, 0, MAX_PATH);
GetWindowsDirectory(syspath, MAX_PATH);
char path[MAX_PATH];
memset(path, 0, MAX_PATH);
wsprintf(path, "%s\\Media\\%S", syspath, MusicName);
char shortname[MAX_PATH + 10];
memset(shortname, 0, MAX_PATH + 10);
GetShortPathName(path, shortname, MAX_PATH + 10);
//MessageBox(NULL, path, TEXT("苍老师舍身为您解毒"), MB_ICONASTERISK);
char cmd[MAX_PATH];
memset(cmd, 0, MAX_PATH);
wsprintf(cmd, "play %s wait", shortname);
mciSendString(cmd , "", 0, NULL);
}
audio("Windows XP 启动.wav");
[解决办法]
//测试环境,VS08,win32程序,多字节。
MusicName 没有乱码。
wsprintf(path, "%s\\Media\\%s", syspath, MusicName);// %s小写