C++ 在gcc windows api字符串处理中启用UNICODE
我正在尝试扫描windows wave设备,使用test.cpp中的以下测试片段 使用名称空间std; 包括 包括 包括 int main { int nDeviceCount=waveOutGetNumDevs; 矢量设备; WAVEOUTCAPS-woc; 对于int n=0;nC++ 在gcc windows api字符串处理中启用UNICODE,c++,mingw-w64,winmm,C++,Mingw W64,Winmm,我正在尝试扫描windows wave设备,使用test.cpp中的以下测试片段 使用名称空间std; 包括 包括 包括 int main { int nDeviceCount=waveOutGetNumDevs; 矢量设备; WAVEOUTCAPS-woc; 对于int n=0;ng++.\test.cpp-c .\test.cpp:在函数“int main”中: .\test.cpp:14:27:错误:调用“std::\uuucxx11::basic\u string::basic\u s
要解决此问题,请在包含Windows.h文件之前放置一条define UNICODE语句,或者改用std::string。是关于将字符串转换为wstring,但答案仍然适用。如果您的代码页不是UTF-8,则必须将字符串正确转换为正确的编码。谢谢,这很有意义。定义UNICODE解决了这个问题。或者,您可以简单地忘记UNICODE,直接使用waveOutDevCapsW/WAVEOUTCAPSW。