【发布时间】:2012-04-26 11:34:32
【问题描述】:
在 Windows 下将 C++ 程序从 32 位移植到 64 位时,我意识到不支持 _tcslen,而应该使用 strlen/wcslen(用于非 unicode/unicode)。我开始怀疑
- 如果 wcslen 是 ISO/IEC 14882:2003 C++ 标准库的一部分。我看到 g++ 和 VC++ 都支持这个函数。同样在open group 中,我找到了一个说明
The functionality described on this reference page is aligned with the ISO C standard的参考资料,但没有提到它是C89 还是c99。 - _tcslen 是否与 Win64 不兼容?甚至 MSDN Link 也没有任何暗示。
- 对于 Unicode,是否可以不经意地使用 wcslen 而不是 _tcslen?
【问题讨论】:
-
_tcslen只是wcslen或strlen的#define,具体取决于是否定义了_UNICODE。您可以随时复制 tchar.h 或制作您自己的版本以使其在任何平台上工作。如果它不起作用,您可能只需要包含 tchar.h。
标签: c++ windows linux 64-bit strlen