构建C ++ CLR托管DLL

时间:2014-03-15 04:36:44

标签: c++ .net managed

你能帮我解决这个错误:

enter image description here

我传递的值是一个String ^类型,我实际上是在模板类中传递值但是显示错误

1 个答案:

答案 0 :(得分:1)

首先,看起来你正试图将托管内存“用户名”传递给非托管函数。

String^ s = gcnew String("sample string");
IntPtr ip = Marshal::StringToHGlobalAnsi(s);
const char* str = static_cast<const char*>(ip.ToPointer());

Console::WriteLine("(managed) passing string...");
NativeTakesAString( str );

Marshal::FreeHGlobal( ip );

参考:http://msdn.microsoft.com/en-us/library/22e4dash.aspx