我遵循了有关创建 Windows 的教程 - 使用标准 windows.h header 的窗口。
WNDCLASSEX wc;
...
ec.lpszClassName = applicationName;
起初编译时,applicationName 是一个 char* 并且一切正常,但现在我需要重新创建项目(顺便说一下 MSVC++),并且在我尝试编译它时,它需要是一个 LPCWSTR。我偶然发现了很多,想知道为什么它有时接受 char* 而有时不接受!?我的项目设置中是否遗漏了什么?
顺便说一句: 同样的事情发生在
D3DX11CreateShaderResourceViewFromFile(d3ddevice, filename, NULL, NULL, &m_texture, NULL);
其中文件名曾经接受过 char* 但不再接受了...
最佳答案
在“Configuration Properties->General”下的项目设置中,有一个名为“Character Set”的选项。将此设置为“使用 Unicode 字符集”将导致许多 Windows API 函数接受 wchar_t*
而不是 char*
。如果设置为“使用多字节字符集”,API 函数将使用 char*
而不是 wchar_t*
。
关于c++ - Windows 函数中的 char* 或 LPCWSTR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16862484/