|
|
在NativeLibrary中
[UnmanagedCallersOnly(EntryPoint = "Hello")]
public static IntPtr Hello()
{
string ret = "some string";
IntPtr retPointer = Marshal.StringToHGlobalUni(ret);
return retPointer;
}
在调用方
[DllImport("xxxx.dll", CharSet = CharSet.Unicode)]
public static extern string Hello();
查了Marshal.StringToHGlobalUni说需要调用方进行手动Free, 那么DllImport用string来接收, 是否.net本身的封装传送机制会进行自动释放?
请教一下.net NativeAot 写NativeLibrary时字符串封装传送时, 这样写会内存泄漏吗? |
|