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