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

Vin*_*n.X 2 c++ string stdstring

当我尝试使用CDynamicStringAccessor从我的存储过程中检索"列名"然后写入我的csv文件的第一行时,我要处理从LPOLESTR到char*OR std的转换: :串.

经过一些研究,我终于找到了最简单的方法.我会尽快发布答案,希望这能帮助那些有同样问题的人.

M.M*_*M.M 5

您可以使用ATL转换宏.这些暂时从堆栈中分配:

USES_CONVERSION;

std::string my_string = OLE2CA(the_lpolestr);
Run Code Online (Sandbox Code Playgroud)

又见答案这里的一些替代品,因为OLECHARwchar_t自1995年左右.

一个重要的替代方法是实际使用的宽字符串,是没有将其转换(转换或者丢失信息,或将产生一个UTF-8字符串可能会或可能不适合你打算怎么使用它).