推荐一个好工具:P/Invoke Interop Assistant

在从托管代码里面调用非托管代码的时候,经常会翻阅MSDN找到需要调用的这个程序集里面的关于需要调用方法的签名,还要特别注意方法签名的写法。而且,有的时候我们找到一个非托管代码,对里面的调用方式还没有参考文档。

这个boring的过程,以前我们可以利用MSDN,相关模块的参考文档,或者利用PInvoke.net这个网站来搞定。或者,我也见过一些同行找到了一个小工具P/Invoke wizard,用这个可以直接完成这个工作。在这里可以下载到:
http://www.paulyao.com/res/pinvoke/download.aspx
但是这个工具自从2004年更新了就没再更新过了。只支持1.0和1.1的dotnet framework。

在看MSDN上面的一篇文章的时候,看到微软的zhangyi使用了一个叫做P/Invoke Interop Assistant GUI Tool的工具,P/Invoke Signature Generator。用了下,感觉非常方便。
它支持托管代码和非托管代码之间的方法签名的转换,而且直接生成相关的C#或者是VB的方法调用代码。这个签名的转换,不只是适用于Windows的方法签名,只要给定一个C头文件,就可以转换成为相关的C#的import方法签名:
r_fig11_L.gif

附上一个下载地址:
http://download.microsoft.com/download/f/2/7/f279e71e-efb0-4155-873d-5554a0608523/CLRInsideOut2008_01.exe

Ref From:

http://www.cnblogs.com/lbq1221119/archive/2008/01/16/1040958.html

如何使用C#调用非托管DLL函数 http://www.cnblogs.com/xugang/archive/2007/12/23/1011597.html

http://hi.baidu.com/wingingbob/blog/item/d1bcc7234901c542ac34de2b.html

http://blogs.msdn.com/silverlightshanghai/archive/2008/06/17/p-invoke-interop-assistant-p-invoke.aspx

http://www.codeplex.com/clrinterop

Video: http://channel9.msdn.com/posts/funkyonex/The-P-Invoke-Interop-Assistant/?CommentID=420036

原文地址:https://www.cnblogs.com/emanlee/p/1312988.html