sharemon
2016-06-15 02:58
采纳率: 100%
浏览 3.6k
已采纳

请教labview和c#的执行流程的差别

我在做一个控制下位机的小程序,有现成的API,是c#写的dll。但是我用c#写完功能后发现总是运行到某一个地方报错(下位机死机或者是pc跟下位机通讯断了),而同样的流程我用labview写就不会有问题。
我甚至做了一个这样的实验,把我要实现的功能用c#再写成一个dll,实现只要调用这个dll的一个public方法就可以完成整个流程。然后用c#和labview分别调用,发现结果还是一样。我觉得可能是 labview和C#执行的过程中的差异导致的,但是到底有什么差异我就不明白了,请教各位,谢谢。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • wanggege2007 2016-08-29 11:38
    已采纳

    labview调用c#动态库,需要特定的写法。内容有点多,不好打字,你直接百度搜索如何用labview调用c#dll。问题直接解决,谢谢采纳。

    点赞 评论
  • nijiaoshun 2019-04-08 13:51

    我们需要在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" ?>





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

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

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

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

    点赞 评论

相关推荐 更多相似问题