在 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中文网其他相关文章!