首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >性病:向LPCSTR方向流?

性病:向LPCSTR方向流?
EN

Stack Overflow用户
提问于 2015-08-18 10:44:55
回答 1查看 2.4K关注 0票数 2

如何将std::ostringstream转换为LPCSTR

代码语言:javascript
复制
std::ostringstream oss;
[...]
LPCSTR result = oss.str();

结果:Error: No suitable conversion function from "std::basic_string<char, std::char_traits<char>, std::allocator<char>>" to "LPCSTR" exists

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-18 10:46:41

如下所示:

代码语言:javascript
复制
std::string str = oss.str();
LPCSTR cstr = str.c_str();

请注意,您的cstr只在str的下一次修改之前仍然有效。因此,例如,您不能从函数返回cstr,因为str是一个已离开作用域的局部变量。

而不是从这个函数返回LPCSTR,而是返回std::string。如果返回LPCSTR,这将避免处理生存期问题。如果返回LPCSTR,则必须分配内存并确保将其取消分配。这正是您不想在C++代码中做的事情。因此,在调用Windows函数时,返回std::string并对该对象调用c_str()

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32070221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档