Linux 上的 tchar.h

发布于 2024-07-22 05:14:14 字数 154 浏览 5 评论 0原文

我正在尝试编写跨平台 i18n C++ 代码。 由于大多数linux系统更喜欢使用UTF-8作为字符编码,所以我认为我应该在linux上使用string,在Windows上使用wstring。 tchar.h 在 Linux 上可用吗? Linux 上 tchar.h 的等效替代是什么?

I am trying to write cross platform i18n C++ code. Since most linux system prefer to use UTF-8 as the character encoding, I thought that I should use string on linux and wstring on Windows. Is tchar.h available on linux? What is an equivalent replacement on for tchar.h on Linux?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

碍人泪离人颜 2024-07-29 05:14:14

您可能会发现这篇文章很有用。 特别是,在接近尾声时,他们讨论了一些有关使用 TCHAR 和处理 Windows 代码的内容。

文章总结为:

当使用 GNU C 编译器编译此代码时,TCHAR 将被转换为宽字符数据类型(大多数可移植库在其标头中定义 TCHAR 并引用 wchar_t)。 事实上,这就是我将 C++ 程序转变为字谜生成器的方法:我使用填充有 UTF-8 的标准 C++ 字符串,并将带有转换为 wchar_t 的指针的数据提供给库函数。 UTF-8 数据解释为 UTF-32 等于垃圾(但它对于混淆数据和错误非常有用)。

You may find this article to be useful. In particular, near the end they discuss a bit about using TCHAR and dealing with Windows code.

The article summarization is:

TCHAR will be translated into a wide character data type when compiling this code with the GNU C Compiler (most portable libraries define TCHAR in their headers and refer to wchar_t). This, in fact, was how I turned my C++ program into an anagram generator: I used standard C++ strings filled with UTF-8 and fed the data with pointers casted to wchar_t to library functions. UTF-8 data interpreted as UTF-32 equals garbage (but it is tremendously useful for obfuscation of data and bugs).

栀子花开つ 2024-07-29 05:14:14

为了构建以 Windows 为中心的源代码,我可以使用 cygwin\usr\include\w32api 文件夹中 Cygwin 中的 tchar.h 文件。

我实际上正在使用 Android NDK 进行构建。
为了我的目的,我制作了 tchar.h 的副本并对其进行了修补。

//#include <crtdefs.h>

#define _CRTIMP

//#define _strninc(_pc,_sz) (((_pc)+(_sz)))
//  _CRTIMP size_t __cdecl __strncnt(const char *_Str,size_t _Cnt);

To build my Windows centric source I was able to use the tchar.h file from Cygwin's found in the cygwin\usr\include\w32api folder.

I am actually building using Android NDK.
For my purposes I made a copy of tchar.h and patched it.

//#include <crtdefs.h>

#define _CRTIMP

//#define _strninc(_pc,_sz) (((_pc)+(_sz)))
//  _CRTIMP size_t __cdecl __strncnt(const char *_Str,size_t _Cnt);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文