c++ - 如何在 C++ 中将 LPOLESTR 转换为 char*

标签 c++ string stdstring

当我尝试使用 CDynamicStringAccessor 从存储过程中检索“列名称”,然后写入 csv 文件的第一行时,我已经到了必须处理从 LPOLESTR 到 char* 的转换的地步了。或 std::string。

经过一番研究,我终于找到了最简单的方法。我会尽快发布答案,希望对遇到同样问题的人有所帮助。

最佳答案

您可以使用ATL conversion macros 。这些临时从堆栈分配:

USES_CONVERSION;

std::string my_string = OLE2CA(the_lpolestr);

另请参阅答案 here对于某些替代方案,因为大约 1995 年以来 OLECHARwchar_t

一个重要的替代方案是实际按原样使用宽字符串而不对其进行转换(转换要么会丢失信息,要么会生成一个 UTF-8 字符串,该字符串可能适合也可能不适合您要使用它的用途) .

关于c++ - 如何在 C++ 中将 LPOLESTR 转换为 char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25599245/

相关文章:

c++11 - 转换运算符转换为 Visual Studio 2013 时出现问题

c++ - 流迭代器的结尾是可配置的吗?

c++ - 关键点描述符 OpenCV

c4133 警告 C 代码

java - 将字符串变量拆分为指定长度的随机子字符串

c++ - 将对象写入文件和从文件读取对象

c++ - 我如何将类对象写入文件?

c++ - 在 C++ 中,重载运算符后,运算符是否会失去其旧功能?

java - String.matches() 的 DOTALL

c++ - 是否可以为 std::string 和 std::wstring 编写一个函数?