我正在开发的C ++ / CLI的应用程序,并有一个CSV文件中写入非托管代码库,我想从管理部分使用。 所以,我的功能看起来是这样的:
bool CSVWriter::Write(const char* stringToWrite);
......但我真的努力我闪亮的系统:字符串^到兼容的东西转换。 基本上,我希望通过做类似呼吁:
if( m_myWriter->Write(String::Format("{0}",someValueIWantToSave)) )
{
// report success
}
using namespace System::Runtime::InteropServices;
const char* str = (const char*) (Marshal::StringToHGlobalAnsi(managedString)).ToPointer();
从开发大棚 。
作为mcandre提到, 元帅:StringToHGlobalAnsi()是正确的。 但是不要忘记释放与新分配的资源元帅:FreeHGlobal() ,当字符串是不再使用。
另外,您也可以使用msclr ::互操作:: marshal_as模板来创建字符串资源,并自动在呼叫退出资源的范围内将其释放。
有什么样的类型需要在其中转换列表编组的C ++概述 。