c++ - 如何在应用程序中更改 Windows ANSI api 的 CP_ACP(0)?

标签 c++ winapi unicode utf-8 codepages

我尝试使用一个dll库绘制文本,该库只有ANSI版本封装的Windows ANSI api接口(interface),但我需要使用utf-8存储字符串数据。我不想使用 MultiByte/WideChar 函数转换字符串,因此我想要一种方法来更改应用程序中的 CP_ACP,以便我可以将字符串数据输入到 ANSI api 中。谢谢。

ps:我不想更改系统默认代码页。

最佳答案

CP_ACP 表示系统 Ansi 代码页。您无法在每个进程或每个线程的基础上更改它。这是系统范围的设置。如果 DLL 确实在内部依赖于 CP_ACP,那么每当与 DLL 交互时,您别无选择,只能将 UTF-8 转换为 UTF-8。

关于c++ - 如何在应用程序中更改 Windows ANSI api 的 CP_ACP(0)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14126868/

相关文章:

windows - 编剧如何从焦点窗口获取文本信息?

c++ - 如何从网络逻辑磁盘名获取物理磁盘索引?

Unicode 和 csv 问题中的 Python 数组打印

MySQL - 将 ANSI 转换为 Unicode

java - Unicode 不显示希腊字符

c++ - Qt5:连接:如果插槽的参数少于信号,如何使用 'connect'

c++ - 除非链接到 pthreads,否则不会出现死锁?

c++ - 网格中的 GTKMM 按钮

在重载算术运算符中调用 C++ 析构函数

C++ 动态线程