zoukankan      html  css  js  c++  java
  • LabView调用C#混合模式dll

    在一些特定要求下,我们的C#可能需要制作dll给LabView进行调用,并且我们不能够保证C#的程序是完全自己写而不调用第三方的dll库。很多时候我们需要使用诸如Sqlite.Net、AForge.Net之类的开源库,此时我们发现我们需要使用混合模式去兼容这些由.NET 2.0版本运行时开发的开源库。

    一、C#中的混合模式

    如果是C#应用程序,那么我们只要在工程对应项目中添加“应用程序配置文件”也就是app.config文件:

    image

    然后在里面填入如下信息进行编译即可:

    <?xml version ="1.0" encoding="utf-8" ?>
    <configuration>
        <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" />
      </startup>
    </configuration>

    然后我们会在编译后的可执行文件中看到对应的配置文件,其名称与最终生成的可执行文件类似:

    image

    右键打开会发现其内容就是app.config里的内容。

    二、LabView中配置混合模式

    我们需要在LabView中利用C#进行开发的dll,并且里面有第三方的库是.Net2.0 3.0以及3.5之类程序集,那么我们也需要要求配置混个模式。但是LabView中没有app.config,于是我们每次调用报错。解决方式就是模仿C#的程序,在LabView生成的exe可执行文件相同目录创建一个exe.config文件,然后填入配置信息

    具体操作如下:

    1. 创建LabView工程

    2. 在编写完程序后生成可执行文件:<应用程序名称>.exe

    3. 在根目录下使用文本编辑器创建:<应用程序名称>.exe.config文件,然后复制内容:

    <?xml version ="1.0" encoding="utf-8" ?>
    <configuration>
        <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" />
      </startup>
    </configuration>

    4. 将LabView调用的程序集都放在根目录(此操作防止一些程序集找不到其引用的其它程序集)

    5. 运行LabView生成的可执行文件

    原文见NI官网:Loading .NET 2.0, 3.0, and 3.5 Assemblies in LabVIEW

    PS:当然,这个方式也存在问题,就是没法直接进行调试。

    希望对大家有帮助!也希望有更好方法的同行能够指点一下!

  • 相关阅读:
    python set 使用
    python判断字符串是字母 数字 大小写
    go语言中的运算符^,&
    golang 之 flag.String
    关于Mac或Linux下GO的Permission denied提示错误
    《算法竞赛进阶指南》0x05排序 POJ3784 对顶堆动态维护中位数
    大顶堆的基本操作(线性表建堆+siftup+siftdown+insert+delete)
    《算法竞赛进阶指南》0x05排序 环形均分纸牌问题
    SublimeText3配置c/c++环境
    《算法竞赛进阶指南》0x05 排序 离散化
  • 原文地址:https://www.cnblogs.com/sleepwalker/p/5065156.html
Copyright © 2011-2022 走看看