问题描述
假设我在库中导出了以下 C++ 函数:
void foo(const wchar_t* text);
和使用该函数的 C# 代码:
[DllImport("bla.dll")]
static extern void foo([MarshalAs(UnmanagedType.LPWStr)] string text);
void Bar()
{
string s = "hello";
foo(s);
}
- .net 编组器在我调用
foo
时是否复制字符串或指针是否指向s
的缓冲区? - 如果值被复制,什么时候清理?
- 我必须自己清理它吗(大概在
foo
内)? - 如果是这样,我该如何清理内存?
如果 text
被编组为:
UnmanagedType.LPWStr
UnmanagedType.BStr
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)