如何从 DWORD 构造 std::string?
我有以下代码:
Tools::Logger.Log(string(GetLastError()), Error);
GetLastError()
返回一个 DWORD
数值,但 std::string
的构造函数不接受 <代码>DWORD。
我能做些什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
您想阅读 ostringstream:
You want to read up on ostringstream:
您想要将数字转换为
字符串
:或
boost::lexical_cast
:You want to convert the number to a
string
:Or
boost::lexical_cast
:自 C++11 起
std:: to_string()
具有int
、long
、long long
、unsigned int
的重载>、unsigned long
、unsigned long long
、float
、double
和long double
>。是的,我是
auto
< /a>.使用您的示例:
Since C++11
std::to_string()
with overloads forint
,long
,long long
,unsigned int
,unsigned long
,unsigned long long
,float
,double
, andlong double
.Yes, I'm a fan of
auto
.To use your example:
使用 Boost 的
lexical_cast
对于像上面这样的简单情况:Use Boost's
lexical_cast
for simple cases such as the above:您可以使用STLSoft的winstl::int_to_string(),如下:
另外,如果要查找错误代码的字符串形式,可以使用STLSoft的winstl::error_desc。
几年前,Dr Dobb 中有很多关于此的文章:部分一个,两个,三个,四。 非常详细地探讨这个主题,特别是关于性能。
You can use STLSoft's winstl::int_to_string(), as follows:
Also, if you want to lookup the string form of the error code, you can use STLSoft's winstl::error_desc.
There were a bunch of articles in Dr Dobb's about this a few years ago: parts one, two, three, four. Goes into the subject in great detail, particularly about performance.
使用 std::stringstream。
Use std::stringstream.
我通常做的是:
what i normally do is:
正如这里所有的人所建议的,实现将使用 stringstream。
在我当前的项目中,我们创建了
从任何源创建字符串的函数。
因此,在我们的项目中,
除非有人包装它,否则按照建议的方式使用流不会通过我的审查。
As all guys here suggested, implementation will use stringstream.
In my current project we created function
to create string from any source.
So in our project it would be
Such usage of streams in the suggested way wouldn't pass my review unless someone wrap it.