代码如下:

  1. char backStr[100];
  2. ::mciSendString((LPCWSTR)"open D:\\7510.mp3 alias mymusic",(LPWSTR)backStr, sizeof(backStr), NULL);
  3. ::mciSendString((LPCWSTR)"play mymusic repeat", (LPWSTR)backStr, sizeof(backStr), NULL);
  4. Sleep(50 * 1000);

因为程序一直无响应,无法播放音频。添加中断检查反馈的backStr信息也是空的。

做的测试

1.使用其他MP3音频文件以及wav文件,没有声音。

2.使用相对路径以及仅文件名(文件已放置),没有声音。

因为代码很简单,但是缺少确认bug的信息,所以想请教一下有没有遇到过类似的问题。或者说需要从哪些方面去考虑解决Bug。

环境是VS2017,使用 Unicode 字符集。

上传的附件
你的回答被采纳后将获得: 3点积分 (将会扣除手续费1点积分。)

keyboard_arrow_left上一篇 : 局部变量能否和全局变量重名?这个怎么理解 怎么学WIN32汇编?? : 下一篇keyboard_arrow_right

3个回答

Juvenile
2019-04-18 09:07:38

网站上也有一篇博文,你可以参考看看:https://www.write-bug.com/article/1944.html

FollowMe
2019-04-18 09:12:40

是你的字符串写的有问题啊!你程序使用的是 Unicode 字符集,但是你的字符串只是类型强制转换而已,这是错误的!!!可以修改为(在字符串前面添加“L”,这将告诉编译器该字符串按宽字符保存-即每个字符占用2个字节):

  1. ::mciSendString(L"open D:\\7510.mp3 alias mymusic",(LPWSTR)backStr, sizeof(backStr), NULL);
  2. ::mciSendString(L"play mymusic repeat", (LPWSTR)backStr, sizeof(backStr), NULL);
Theheartoflove
2019-04-18 12:37:52

unicode字符串的问题

精彩评论

eject