zoukankan      html  css  js  c++  java
  • Unmanaged Exports生成Dll时的一些疑难杂症疗法

    Unmanaged Exports是一个将.NET编写的静态托管函数导出成可供C/C++等直接调用的非托管函数的工具。

    已经在上篇文章介绍过了,这里不再复述。

    限制

    你不能导出在同一个class中的重载函数,即便你指定了不同的导出名称。
    另一个限制是你不能递归调用导出函数。

    生成平台选择一个具体的平台(不能是AnyCPU否则该工具不生效),生成解决方案即可。
    该工具最新版只支持vs2008以后的vs,因为vs2008及以前的版本不支持nuget。

    工具官方网站及详细说明:
    https://sites.google.com/site/robertgiesecke/Home/uploads/unmanagedexports

    关于编译错误

    该工具在非英文操作系统上可能会出现编译错误的问题,具体表现如下:
    http://stackoverflow.com/questions/20288469/cant-create-unmanaged-dll-using-c-sharp-and-robert-gieseckes-unmanaged-exports
    image
    Unmanaged Exports 编译错误
    主要原因是因为非英文操作系统中IL代码中含有非英文注释导致插件工作异常。
    虽然将系统语言切换成英文可以解决这个问题,但是这个方法过于麻烦,故本人修改了这个工具,修正了其在非英文操作系统上不能正常使用的问题。

    文末附上修改后的文件,解压后将其中的两个dll替换进项目NuGet包中packagesUnmanagedExports.1.2.7 ools文件夹下的两个同名dll即可。
    改修正版仅针对Unmanaged Exports 1.2.7版本制作,其它版本未测,可能不能正常使用。
    替换完成后即可正常编译:
    Unmanaged Exports 编译正常
    image

    链接: http://pan.baidu.com/s/1nuCeD1f 密码: s28i

  • 相关阅读:
    Spring mvc时间格式处理
    dubbo升级spring4与cxf
    dom4j使用总结
    java utils
    ES6
    ES6
    javascript常用方法
    ES6
    ES6
    ES6
  • 原文地址:https://www.cnblogs.com/ixysy/p/6361753.html
Copyright © 2011-2022 走看看