我不是本地C ++程序员,所以我需要以下方面的帮助:
我得到了这段代码:
#pragma comment(lib, "winmm.lib")
LPCWSTR openCDCommand = L"set cdaudio door open";
//comes from Windows.h, needs winmm.lib see header includes
int errCode = mciSendString(openCDCommand, 0, 0, 0);
答案 0 :(得分:1)
现在这对我有用 - 花了一些时间,但也许将来这会对其他人有所帮助:
#include "vcclr.h" // compile with /clr(!)
int Player::mciSendStringHandle(String ^ givenHandle)
{
pin_ptr<const wchar_t> wch = PtrToStringChars(givenHandle);
return mciSendString(wch, 0, 0, 0);
}
答案 1 :(得分:1)
mciSendString的签名是
MCIERROR mciSendString(
LPCTSTR lpszCommand,
LPTSTR lpszReturnString,
UINT cchReturn,
HANDLE hwndCallback);
因此,关于前两个参数,在unicode中它将是一个wchar指针,在多字节中它将是一个char指针。这是签名。你不能改变它,你不应该担心。
std::wstring someString( L"Foo" );
someString.append( L"bar ");
我会用核心音频API,waveOut或DirectSound播放声音。但是,不是mciSendString()
。
我害怕我不理解这个......你能更好地解释一下吗?