我正在编写我的第一个 C# 应用程序,但幸运的是我必须使用 void 指针(使用返回句柄的 DLL)。从我读到的内容来看,有以下几种选择:
不安全代码,例如参见http://www.c-sharpcorner.com/UploadFile/gregory_popek/WritingUnsafeCode11102005040251AM/WritingUnsafeCode.aspx
在我的 C# 程序中,我的函数 declarations IntPtr 而不是 void* 中写入。例如。:
公共静态 extern char SupportsWhatever(IntPtr h);
使用 ref,例如:
公共静态 extern char SupportsWhatever(ref h);
还应该注意的是,我需要在 DLL 和 C# 应用程序之间来回整理信息。
unsafe 选项是 Google 上第一个出现的选项,但出于某种原因,在我的所有函数之前编写关键字 unsafe 感觉不太对。
有什么建议吗?
通常,对于编组情况,使用 IntPtr 将是此处的首选方法。它在安全代码中是允许的,并且非常清楚地表明您的意图是来回整理指针。
这就是 BCL 代表句柄的部分。例如,您可以构造一个来自 IntPtr 的光标代表本机句柄。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)