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

7

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

bool CSVWriter::Write(const char* stringToWrite);

...但是我真的很难将我的闪亮 System::String^ 转换成兼容的内容。基本上,我希望通过类似以下的方式进行调用:

if( m_myWriter->Write(String::Format("{0}",someValueIWantToSave)) )
{
    // report success
}

可能是重复的问题:如何将System::String转换为const char*? - Ben Voigt
3个回答

13
using namespace System::Runtime::InteropServices;
const char* str = (const char*) (Marshal::StringToHGlobalAnsi(managedString)).ToPointer();

来自Dev Shed


14
缺少Marshal::FreeHGlobal(...)会导致内存泄漏。 - Cédric Guillemette

11

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接