C#調用C++的庫 P/Invoke工具集


p/Invoke可以使用工具輔助自動生成,以減少混淆

1、官方的支持

http://visualstudiogallery.msdn.microsoft.com/site/search?query=p%2Finvoke&f%5B0%5D.Value=p%2Finvoke&f%5B0%5D.Type=SearchText&ac=4

微軟的官方擴展上也有很多

開源的工具

http://www.pin5i.com/showtopic-22763.html

看起來微軟自己也是深受.NET蹩腳的P/Invoke支持的毒害,因此無奈之余發布P/Invoke Interop Assistant工具,你可以去下面這個鏈接來下載這個工具:
http://download.microsoft.com/download/f/2/7/f279e71e-efb0-4155-873d-5554a0608523/CLRInsideOut2008_01.exe

實際上這個工具已經開源了,你可以從這里http://www.codeplex.com/clrinterop/下載到它的源代碼

2、經典的討論區 

http://stackoverflow.com/questions/2495632/easiest-way-to-generate-p-invoke-code

http://www.paulyao.com/res/pinvoke/pinvoke.aspx

3、社區評論

http://through-the-interface.typepad.com/through_the_interface/2011/04/pinvoke-tools.html

 

The first tool is the PInvoke Visual Studio Add-in from Red Gate Software (the UK-based provider of various development tools, including Reflector Pro). It appears to be a Visual Studio Add-in for VS2003 and 2005 (I can’t see an update for VS2008 or 2010, which also means I can’t try it). The tool provides simplified access to the excellent PInvoke.net website, to which I often refer when developing .NET apps. I don’t actually use that many P/Invoke statements that I feel I need an Add-In, though – which is perhaps why the add-in doesn’t appear to have been updated for more recent Visual Studio versions – but it seemed worth mentioning.

 

PInvoke Visual Studio Add-in menu itemPInvoke Visual Studio Add-in dialog

 

The second – in my opinion more interesting – tool is the P/Invoke Interop Assistant(here’s a more in-depth articlethe CodePlex hosting site and a Channel 9 interview with one of the authors). This tool generates P/Invoke signatures for use from C# and VB.NET, as well as the ability to determine the P/Invoke signatures used in compiled binaries:

 

  • Generating P/Invoke declarations while searching for commonly-used (presumably Win32) functions, structures, messages, etc.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM