Orwell Dev-C++中的Unicode字符串
Unicode strings in Orwell Dev-C++
在Dev-C++中,当我用编译程序时
LPCTSTR ClsName = L"BasicApp";
LPCTSTR WndName = L"A Simple Window";
编译中断,但当我用编译程序时
LPCTSTR ClsName = "BasicApp";
LPCTSTR WndName = "A Simple Window";
它成功了;因此,如何以VS++中的"L"的方式将unicode字符串传递给Orwell Dev-C++是一个问题。
请参阅Microsoft关于使用字符串的文档
非常接近这个开始你可以阅读:
若要声明宽字符文字或宽字符串文字,请将L放在文字之前。
wchar_t a = L'a';
wchar_t *str = L"hello";
(此信息不是Microsoft特有的。它与C/C++标准相呼应(
然后,如果你查阅了你在评论中引用的文件并找到LPCTSTR
的条目,您可以看到该宏是根据UNICODE
:的值有条件定义的
#ifdef UNICODE
typedef LPCWSTR LPCTSTR;
#else
typedef LPCSTR LPCTSTR;
#endif
LPCWSTR
的条目告诉它已定义:
typedef CONST WCHAR *LPCWSTR;
条目或LPCSTR
告诉它是定义的:
typedef __nullterminated CONST CHAR *LPCSTR;
您正在构建未定义UNICODE
的项目。因此,
LPCTSTR ClsName = L"BasicApp";
变为:
__nullterminated CONST CHAR * ClsName = L"BasicApp";
根据所提到的定义,其涉及初始化具有不兼容指针类型wchar_t *
的CONST CHAR *
。CCD_ 8也是如此。
若要更正此错误,必须将UNICODE
添加到项目的预处理器定义中。在Orwell Dev-C++IDE中,通过导航项目->项目选项>参数来执行此操作;在标题为C++编译器的文本框中输入-DUNICODE
,然后确定输出。Visual Studio C/C++项目默认定义UNICODE
。Orwell Dev-C++没有。
如果您想编写在unicode和ANSI多字节字符集之间可移植的字符串文字定义,那么"使用字符串"将告诉您如何:读取TCHARS
的条目。字符串文字的可移植定义是:
LPCTSTR ClsName = TEXT("BasicApp");
LPCTSTR WndName = TEXT("A Simple Window");
相关文章:
- 如何将unicode字符串从C++传递到delphi
- 将ANSI C字符串转换为UNICODE
- 将 unicode 字符串与 c ++ 符号进行比较?
- 如何在 c++ 中读取用 utf-8 编码的 java unicode 字节字符串
- C++:Unicode 字符串文字的可移植性
- 如何使用 CTypes 将 wchar_t** - 以空结尾的 UNICODE 字符串数组 - 返回到 Python 脚
- 在将 unicode 替换为C++字符串中的空格时出现分段错误
- C++ 原始字符串 Unicode 文字
- Xamarin Android:在 C++ 中将字符串从 C# 封送到 Unicode 字符串的正确方法是什么?
- 如何在 python 包装中使用 unicode 字符串用于带有 cython 的 c++ 类?
- 六角字符串到UTF-8(UNICODE)字符串
- 如何使用poco :: logger记录Unicode字符串
- 将 Unicode 字符/字符串写入文件
- 如何将 Unicode 字符串连接成字符串以传递到 mysql 调用中
- 从终端 C++ 中的字符串中打印出 unicode 字符
- Unicode字符串Visual C 构造函数
- 字符串到 Unicode,Unicode 到十进制码位 (C++)
- 如何让 SWIG 返回 Python 2 中字符串的 unicode 对象
- 如何将 (ICU4C) Unicode 字符串逐个字符复制到另一个 Unicode 字符串
- 如何从Windows中的进程中读取Unicode字符串