2

如何将 a 转换std::ostringstreamLPCSTR

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

4

1 回答 1

7

像这样:

std::string str = oss.str();
LPCSTR cstr = str.c_str();

请注意,您cstr仅在下一次修改str. 因此,例如,您不能cstr从函数返回,因为str它是一个已离开作用域的局部变量。

不是LPCSTR从这个函数返回,而是 return std::string。如果您返回,这可以避免处理生命周期问题LPCSTR。如果您返回LPCSTR,则必须分配内存并确保已释放它。正是您不想在 C++ 代码中做的那种事情。因此,在调用 Windows API 函数的位置返回std::string并调用c_str()该对象。

于 2015-08-18T10:46:41.590 回答