【发布时间】:2017-06-30 01:29:21
【问题描述】:
拥有一个通过参数返回字符串(作为 char *)的本机函数,在通过托管代码预分配 char * 并通过参数传递它并从本机代码内部分配 char * 之间的最佳选择是什么然后从 c# 中释放它?
您能否向我解释一下为什么我应该使用其中一个而不是另一个?请仅在有特定原因偏爱某个解决方案而不是另一个解决方案时才回答。如果任一解决方案都可以,我的问题也可以被视为已回答。
作为奖励,我想知道在第一种情况下我应该如何从 c# 分配 char * 变量(使用 Marshal 类或使用简单的 new 或使用 StringBuilder,就像我在其他答案中经常看到的那样?)以及如何如果我在第二种情况下从本机代码中创建 char * 变量,我应该删除指针。
【问题讨论】:
-
请删除原版。我昨天居然标记为删除,肯定有人恢复了!原来的也没有答案,只有一条评论
-
@Flexo:这个骗子已经被删除了,这个问题虽然有点“软”,但似乎确实是话题并且有一个不错的答案。请考虑重新打开它吗?
标签: c# mixed-mode