如何使本地API成为PInvoke友好?如何使PInvoke友好的原生API?
有关于如何修改与P/Invoke here一起使用的本机程序的一些提示。但是在我编写本地程序之前,我应该注意什么使我的程序/库PInvoke友好?
使用C或C++都很好。
更新:
如果我写一个C API,什么是我必须这样做,这是P /使用C#的语法类似于下面的调用,能够在事情:
[DLLimport("MyDLL.dll")]
是有可能这样做与原生C++代码/库相同吗?
摘要/改写一些提示,使一个的P/Invoke友好的本地API:
+的参数应该是原生类型(INT,CHAR *,浮法,...)
+参数少是更好
+如果分配了动态内存并将其传递给托管代码,请确保创建一个也称为“清理程序”的函数,该函数也可以被p/
+ +提供样本和/或单元测试, +提供C++/CLI封装器
“函数应该尽可能少的参数应该是本机类型(int,char *,float,...)” 我可以将它总结为: - >参数应该是本机类型(INT,CHAR *,浮法,...) - >少参数更好 - >如果动态内存分配和传递到托管代码,确保创建一个“干净”的功能,这也是p /援引 – 2010-01-19 09:52:14
是这是一个很好的总结。 – 2010-01-19 16:25:13