推荐一个好工具: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

posted on 2008-01-16 11:05 lbq1221119 阅读(2800) 评论(23)  编辑 收藏 所属分类: IL/CILCLR探索系列

评论

#1楼  2008-01-16 11:20 JerryChou      

正需要,多谢。   回复  引用  查看    

#2楼  2008-01-16 11:29 Solog      

P/Invoke Interop Assistant GUI Tool
那个下载链接无法下载,能否传一份该工具,谢谢
fancyboy218#gmail.com(#->@)
3Q   回复  引用  查看    

#3楼 [楼主] 2008-01-16 13:00 lbq1221119      

@Solog

已发,请查收。   回复  引用  查看    

#4楼  2008-01-16 13:29 oxsoft.cn [未注册用户]

感谢!   回复  引用    

#5楼  2008-01-16 14:18 A1 [未注册用户]

非常感谢,这下可以省下不小功夫。   回复  引用    

#6楼  2008-01-16 15:13 Jeff Yang      

与Red-Gate提供的PInvoke.net相比如何呢?   回复  引用  查看    

#7楼 [楼主] 2008-01-16 15:30 lbq1221119      

@Jeff Yang
更加强大,通用,适用的情况多   回复  引用  查看    

#8楼  2008-01-16 15:47 Solog      

--引用--------------------------------------------------
lbq1221119: @Solog

已发,请查收。
--------------------------------------------------------
未收到。-_-!!,
fancyboy218@gmail.com
麻烦再发一次
  回复  引用  查看    

#9楼  2008-01-16 16:25 不知道怎么用 [未注册用户]

这个东西 怎么用呢?

作者给我 教程吧..   回复  引用    

#10楼  2008-01-16 19:34 曲滨*銘龘鶽      

@楼上
第一页是察看把 .net dll 用了啥 api
第二页,可以把api 转化为api
  回复  引用  查看    

#11楼  2008-01-16 20:31 egmkang      

怎么有点像Java的JNI......   回复  引用  查看    

#12楼  2008-01-16 22:59 deerchao      

#define IJL_STDCALL __stdcall => public const string IJL_STDCALL = "__stdcall";

...

如果能加个预处理器就好了,呵呵.   回复  引用  查看    

#13楼  2008-01-16 23:14 双鱼座      

N年前用过,没有你描述的这么好,用用你就知道了,很多的Win32函数或者其结构没有提供,不到一星期我就卸了。   回复  引用  查看    

#14楼  2008-01-17 01:24 wengda [未注册用户]

very nice tool, thank you.   回复  引用    

#15楼 [楼主] 2008-01-17 09:14 lbq1221119      

@双鱼座
还不错,比找参考文档省事很多   回复  引用  查看    

#16楼  2008-01-17 12:08 JoeLee [未注册用户]

PInvoke.net
本身就提供了一个工具.我一直在VS2005下用的啊.
比如CLSIDFromProgID
直接查就可以用了.   回复  引用    

#17楼  2008-01-17 14:04 钢钢      

推荐一篇我写的相关的文章(参考)
如何使用C#调用非托管DLL函数
http://www.cnblogs.com/xugang/archive/2007/12/23/1011597.html   回复  引用  查看    

#18楼  2008-01-17 14:07 钢钢      

P/Invoke Interop Assistant GUI Tool
能否传一份该工具给我,好吗?谢谢   回复  引用  查看    

#19楼 [楼主] 2008-01-17 15:21 lbq1221119      

@JoeLee
恩 刚用了下,感觉你说的这个插件还不错   回复  引用  查看    

#20楼  2008-02-05 21:47 fox23      

的确不错   回复  引用  查看    

#21楼  2008-02-08 15:08 往往 [未注册用户]

楼主能不能也发给我一份   回复  引用    

#22楼 [楼主] 2008-02-08 16:25 lbq1221119      

@往往
上面不有一个下载的链接么   回复  引用  查看    

#23楼  2008-05-16 11:11 求知无傲      

路过   回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-01-16 11:09 编辑过


相关链接:
 

导航

公告


Key word of my Blog:
CLR,CLI,VM,Debug,
SA,C#,
OO,PM,
SE,CMMI,DP,UML.

MSN:


Occupation:System Analyst

我要啦免费统计

统计

与我联系

留言簿(8)

我参与的团队

随笔分类(93)

友情链接+常溜部落格

Cnblog Friends

摄影Blog

积分与排名

最新评论

阅读排行榜

评论排行榜