首页 >后端开发 >C++ >如何在 Unicode MFC 应用程序中将 CString 转换为 `const char*`?

如何在 Unicode MFC 应用程序中将 CString 转换为 `const char*`?

Linda Hamilton
Linda Hamilton原创
2024-10-26 11:38:03810浏览

How to Convert a CString to `const char*` in Unicode MFC Applications?

在 Unicode MFC 应用程序中将 CString 转换为 const char*

将 CString 从 Unicode (TCHAR) 转换为 ASCII (const char*) 是对于与 Unicode MFC 应用程序中的遗留代码或外部库进行交互至关重要。以下是实现此目的的方法:

使用 CT2A 宏

CT2A 宏提供了一种将 Unicode CString 转换为 ASCII 的便捷方法。它采用 CString 作为参数和可选的第二个参数来指定代码页。默认情况下,它使用本地代码页。

<code class="cpp">// Convert using the local code page
CString str(_T("Hello, world!"));
CT2A ascii(str);
TRACE(_T("ASCII: %S\n"), ascii.m_psz);</code>

其他用例

CT2A 宏也可用于将 Unicode CString 转换为 UTF8 或任何其他格式其他 Windows 代码页:

<code class="cpp">// Convert to UTF8
CString str(_T("Some Unicode goodness"));
CT2A ascii(str, CP_UTF8);
TRACE(_T("UTF8: %S\n"), ascii.m_psz);

// Convert to Thai code page
CString str(_T("Some Thai text"));
CT2A ascii(str, 874);
TRACE(_T("Thai: %S\n"), ascii.m_psz);</code>

CA2T 宏和兼容性

还有一个互补的 CA2T 宏,可以从 ASCII 转换为 Unicode。 CT2A 和 CA2T 宏都可以在具有 Visual Studio 2003 或更高版本的 ATL/WTL 应用程序中使用。

其他资源

有关这些宏的更多深入信息和代码页转换,请参考 Microsoft Developer Network (MSDN)。

以上是如何在 Unicode MFC 应用程序中将 CString 转换为 `const char*`?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn