如何转换系统:字符串^为const char *?(How do I convert a Syste

2019-06-25 09:42发布

我正在开发的C ++ / CLI的应用程序,并有一个CSV文件中写入非托管代码库,我想从管理部分使用。 所以,我的功能看起来是这样的:

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

......但我真的努力我闪亮的系统:字符串^到兼容的东西转换。 基本上,我希望通过做类似呼吁:

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

Answer 1:

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

从开发大棚 。



Answer 2:

作为mcandre提到, 元帅:StringToHGlobalAnsi()是正确的。 但是不要忘记释放与新分配的资源元帅:FreeHGlobal() ,当字符串是不再使用。

另外,您也可以使用msclr ::互操作:: marshal_as模板来创建字符串资源,并自动在呼叫退出资源的范围内将其释放。



Answer 3:

有什么样的类型需要在其中转换列表编组的C ++概述 。



文章来源: How do I convert a System::String^ to const char*?
标签: c++-cli char