【问题标题】:mcisendstring returning null stringmcisendstring 返回空字符串
【发布时间】:2015-04-06 22:22:25
【问题描述】:

我一直在尝试检索我能够使用 WINMM 的函数 mciSendString(); 打开和播放的音乐的歌曲长度;

char szCmd[128];
char szResponse[128] = {0};
sprintf_s( szCmd, 128, "status my_alias length");

dwRet =  mciSendString( (LPCSTR)szCmd, szResponse, 0, NULL );

即使没有返回错误代码,szResponse 字符串也总是返回 NULL。

我尝试将时间格式设置为毫秒,

"set my_alias time format to milliseconds"

但也没有运气。 关于我可能遗漏的任何想法?

提前致谢

【问题讨论】:

  • mciSendString: "cchReturn:lpszReturnString 参数指定的返回缓冲区的大小,以字符为单位。"
  • 你告诉 Windows 你想要一个 0 字符的回复,它完全按照你的要求做了。 :)
  • (LPCSTR) 演员表看起来非常错误。使用宽字符(wchar_t / swprintf_s()mciSendStringA()
  • 多么愚蠢的错误!谢谢你们。

标签: c winapi mci


【解决方案1】:

正如 cmets 中所指出的,我在 mciSendString 的第三个参数中传递了 0,即第二个参数指定的返回缓冲区的大小。

【讨论】:

    猜你喜欢
    • 2020-01-27
    • 2020-07-11
    • 2015-05-25
    • 2011-05-09
    • 1970-01-01
    • 2012-07-20
    • 2011-12-15
    • 2020-11-23
    • 2015-12-21
    相关资源
    最近更新 更多