我有String^
1我需要将其转换为const char*
并且c_str()不起作用,因为它不是System :: String的成员。除了this方法之外,还有更简单的方法吗?我只做了一次这是来自openFileDialog->Filename
,所以输入不会是任何复杂的。我正在使用Visual Studio 2008
感谢
答案 0 :(得分:3)
我认为这page可能对您有帮助。
希望有所帮助
答案 1 :(得分:0)
将String ^转换为普通char *字符串的最简单方法是使用您链接到的一些代码。重要的是:
pin_ptr<const wchar_t> wch = PtrToStringChars( source );
完成此操作后,您可以使用wch变量来访问您的角色,但此代码有一些警告。
我建议将该字符串保存在STL字符串(或wstring)类中,或者至少将内容复制到单独管理的缓冲区中 - 就像示例所做的那样。
在工作中,我们使用一些重载函数,这些函数从一种字符串类型转换到另一种字符串类型,所有函数都使用相同的名称。从.Net字符串转换为STL字符串的那个就是:
std::wstring ConvertString(String^ source)
{
pin_ptr<const wchar_t> pinned_string_ptr(PtrToStringChars(source));
return std::wstring(pinned_string_ptr);
}