AnsiString in C++?
AnsiString in C++?
C++有没有像德尔福这样的AnsiString(65001)
类型?我想将其用于应用程序和 DLL 之间的互操作。
std::string
保证充当char
s的容器,char
保证正好是1个字节,这似乎与AnsiString的描述相匹配。
尽管请注意,如果您确实愿意,您始终可以在 std::string 中强制使用一些多字节 Unicode 字符,但编译器无法强制保证每个逻辑字符按 1 字节编码。除了编写自己的类之外,没有简单的方法来C++强制执行这一点。
为了互操作性,你可能希望使用原始字符串(char*
)。
在 C++Builder 中(它使用与 Delphi 相同的 RTL),有一个AnsiStringT
模板化类,它提供与 Delphi 的 AnsiString(N)
类型相同的功能:
template <unsigned short CP>
class RTL_DELPHIRETURN AnsiStringT : public AnsiStringBase
其中CP
是所需的代码页。
RTL 的 UTF8String
和 RawByteString
类型只是此功能的别名:
德 尔 福:
type
UTF8String = type AnsiString(65001);
RawByteString = type AnsiString($ffff);
C++建造者:
typedef AnsiStringT<65001> UTF8String;
typedef AnsiStringT<65535> RawByteString;
相关文章:
- netcat command in c++
- Difference in displaying cv2 Mat
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- IF-nesting in c++
- Gurobi GRBModel and GRBmodel in C++
- Tensorflow Hub in C++
- Centos7 g++ "to_string is not in a member of std"
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- 将 lambda 表达式传递给 std::function in C++
- @CPPFLAGS@在 Makefile.in 中意味着什么?
- std::async from std::async in windows xp