标签: boost-system

如何用英语获取boost :: system :: error_code :: message?

在具有本地化UI的Win7上,error_code::message()返回非英语消息.据我所知(在Boost 1.54中,for system_error_category),上面的函数归结为以下WinAPI调用:

DWORD retval = ::FormatMessageA( 
    FORMAT_MESSAGE_ALLOCATE_BUFFER | 
    FORMAT_MESSAGE_FROM_SYSTEM | 
    FORMAT_MESSAGE_IGNORE_INSERTS,
    NULL,
    ev,
    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
    (LPSTR) &lpMsgBuf,
    0,
    NULL 
);
Run Code Online (Sandbox Code Playgroud)

如何让上述内容FormatMessage返回英文信息?我尝试设置语言环境,包括std函数和SetThreadLocale- 它没有帮助.

更新:只是澄清:基本上,我的问题是如何以编程方式"覆盖" 用户默认语言以及为什么设置区域设置不够.

winapi boost locale boost-system

7
推荐指数
1
解决办法
874
查看次数

boost-asio 错误消息使用的编码是什么?

我正在使用 boost-asio,我想正确处理错误消息。

在这个例子中,我打错了字(1278 而不是 127):

boost::system::error_code ec;
auto address=boost::asio::ip::address::from_string("1278.0.0.1",ec);
if(ec)
{
    auto text=ec.message();
    //Do Something with text but what is its encoding ?
}
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息,它似乎是在 Windows 1252 中编码的(我使用的是 Windows 7)。所以看起来编码是操作系统编码。

但是,我找不到任何说明这一事实的文件。

boost asio 中的错误消息是否使用操作系统字符集进行编码?

c++ boost boost-system

6
推荐指数
1
解决办法
1179
查看次数

标签 统计

boost ×2

boost-system ×2

c++ ×1

locale ×1

winapi ×1