我在尝试将LPCWSTR转换为LPCSTR时遇到问题。从LPCWSTR转换为LPCSTR
一些背景
我编程一个VC++ 2010应用程序,并已运行到哪里,我不得不从类型系统转换的情况::字符串^到的std :: string。我用这个代码,可以这样做:
private: std::string toss(System::String^ s)
{
msclr::interop::marshal_context context;
return context.marshal_as<std::string>(s);
}
这样做,我想我会解决我的所有问题。我错了。由此,我需要将std :: string作为LPCSTR进行强制转换,以用于某些Windows API。
在阅读了关于SO的一些现有问题之后,我觉得自己被卡住了。我被告知使用方法:
LPCSTR str = existingstr.c_str();
当我使用这一点,但是,我给出的错误:无法从LPCWSTR转换成LPCSTR
没有人有我应该做一个更好的主意这个具体的例子,或者我可以如何从LPCWSTR转换为LPCSTR?
在此先感谢。
'existingstr'的类型是什么?你还需要什么来使用LPCSTR? – user470379 2011-02-25 01:49:00
我遇到了相反的问题。从lpcstr转换为lpcwstr。在常规属性中使用“使用多字节字符集”解决了问题。 – Pramod 2012-03-05 07:01:53