c++ - Windows 函数中的 char* 或 LPCWSTR

标签 c++ windows char directx

我遵循了有关创建 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/

相关文章:

Python __init__ 与 C++ 构造函数相比

c++ - 这个 RLE 解码函数只解码第一个字符,我做错了什么?

c++ - 谈论套接字时的同步和异步术语

compiler-errors - 在执行代码块时跳过字符输入 i.n scanf()

java - 如何从扫描仪读取字符串,并将每个字母转换为不同的值?

c++ - ldconfig 没有看到自定义库

c++ - 在 boost::mpl::for_each() 中调用通用 lambda

c# - 关闭表单而不退出应用程序

c - 使用 fgets 随机读取非常大的文件似乎会使 Windows 缓存达到极限

c - 使用指针扫描指针数组