- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个需要 LPCTSTR 的类。
当我打电话时: 新 CFileImageLoader(_T("Splash02.png"))或者 新的 CFileImageLoader("Splash02.png")
两者都不行。为什么 ?我是cpp的新手...谢谢乔纳森·D.
最佳答案
此问题是 C++ 问题和 Windows 特定问题的组合。
C++ 定义了两种类型的字符串,常规字符串和宽字符串。常规字符串如下所示:
const char *str = "regular string";
宽字符串看起来像:
const wchar_t *wstr = L"wide string";
仅使用标准 C++,您必须在编写库时决定是使用常规字符串还是宽字符串。
Windows 定义了一个名为 tchar 的伪类型。使用 tchar 你可以这样写:
LPCTSTR tstr = _T("regular or wide string");
这实际上是常规 (char *) 还是宽 (wchar_t *) 字符串取决于您是否为 Unicode 编译代码。
由于该函数被指定为采用 LPCTSTR,因此需要使用适合您编译方式的类型来调用它。
如果您知道您将只在支持或不支持 Unicode 的情况下进行构建,则可以跳过所有 TCHAR 内容,直接分别使用 wchar_t 或 char。
由于 CFileImageLoader("Splash02.png")
不工作,您必须在启用 Unicode 支持的情况下进行编译。您可以将其更改为 CFileImageLoader(L"Splash02.png")
并 promise 始终使用 Unicode,或者您可以将其更改为 CFileImageLoader(_T("Splash02.png"))
并让宏魔术完成工作。
关于c++ - CFileImageLoader(LPCTSTR lpszFileName);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/415854/
我有一个需要 LPCTSTR 的类。 当我打电话时: 新 CFileImageLoader(_T("Splash02.png"))或者 新的 CFileImageLoader("Splash02.pn
我是一名优秀的程序员,十分优秀!