Unmanaged Exports是一個將.NET編寫的靜態託管函數導出成可供C/C++等直接調用的非託管函數的工具。html
已經在上篇文章介紹過了,這裏再也不復述。函數
你不能導出在同一個class中的重載函數,即使你指定了不一樣的導出名稱。
另外一個限制是你不能遞歸調用導出函數。工具
生成平臺選擇一個具體的平臺(不能是AnyCPU不然該工具不生效),生成解決方案便可。
該工具最新版只支持vs2008之後的vs,由於vs2008及之前的版本不支持nuget。網站
工具官方網站及詳細說明:
https://sites.google.com/site/robertgiesecke/Home/uploads/unmanagedexportsgoogle
該工具在非英文操做系統上可能會出現編譯錯誤的問題,具體表現以下:
http://stackoverflow.com/questions/20288469/cant-create-unmanaged-dll-using-c-sharp-and-robert-gieseckes-unmanaged-exports
Unmanaged Exports 編譯錯誤
主要緣由是由於非英文操做系統中IL代碼中含有非英文註釋致使插件工做異常。
雖然將系統語言切換成英文能夠解決這個問題,可是這個方法過於麻煩,故本人修改了這個工具,修正了其在非英文操做系統上不能正常使用的問題。操作系統
文末附上修改後的文件,解壓後將其中的兩個dll替換進項目NuGet包中packages\UnmanagedExports.1.2.7\tools文件夾下的兩個同名dll便可。
改修正版僅針對Unmanaged Exports 1.2.7版本製做,其它版本未測,可能不能正常使用。
替換完成後便可正常編譯:
Unmanaged Exports 編譯正常
插件
連接: http://pan.baidu.com/s/1nuCeD1f 密碼: s28i3d