当我尝试使用 CDynamicStringAccessor 从存储过程中检索“列名称”,然后写入 csv 文件的第一行时,我已经到了必须处理从 LPOLESTR 到 char* 的转换的地步了。或 std::string。
经过一番研究,我终于找到了最简单的方法。我会尽快发布答案,希望对遇到同样问题的人有所帮助。
最佳答案
您可以使用ATL conversion macros 。这些临时从堆栈分配:
USES_CONVERSION;
std::string my_string = OLE2CA(the_lpolestr);
另请参阅答案 here对于某些替代方案,因为大约 1995 年以来 OLECHAR
是 wchar_t
。
一个重要的替代方案是实际按原样使用宽字符串而不对其进行转换(转换要么会丢失信息,要么会生成一个 UTF-8 字符串,该字符串可能适合也可能不适合您要使用它的用途) .
关于c++ - 如何在 C++ 中将 LPOLESTR 转换为 char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25599245/