C++ cli 如何将System::String^转换为const char*?

C++ cli 如何将System::String^转换为const char*?,c++-cli,char,C++ Cli,Char,我正在用C++/CLI开发一个应用程序,并在非托管代码中有一个csv文件编写库,我想从托管部分使用它。所以我的函数看起来像这样: bool CSVWriter::Write(const char* stringToWrite); …但我真的很难将我闪亮的System::String^转换成兼容的东西。基本上,我希望通过以下方式打电话: if( m_myWriter->Write(String::Format("{0}",someValueIWantToSave)) ) { //

我正在用C++/CLI开发一个应用程序,并在非托管代码中有一个csv文件编写库,我想从托管部分使用它。所以我的函数看起来像这样:

bool CSVWriter::Write(const char* stringToWrite);
…但我真的很难将我闪亮的System::String^转换成兼容的东西。基本上,我希望通过以下方式打电话:

if( m_myWriter->Write(String::Format("{0}",someValueIWantToSave)) )
{
    // report success
}
如前所述,From.

是正确的。但是当字符串不再使用时,不要忘记释放新分配的资源


或者,您可以使用模板创建字符串资源,并在调用退出资源的作用域时自动释放它。

中有一个列表,列出了需要转换的类型。

Missing Marshal::FreeHGlobal(…);这可能会导致内存泄漏。可能会重复
using namespace System::Runtime::InteropServices;
const char* str = (const char*) (Marshal::StringToHGlobalAnsi(managedString)).ToPointer();