微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > 虚拟仪器 > 急问labview调用C代码的困难

急问labview调用C代码的困难

时间:12-13 整理:3721RD 点击:
labview6.1,学习中,按照杨乐平的labview高级编程中的那里例子做
用cin调用C代码,
在VC++6.0中编译的时候
前面都对
到了最后编译add.c时也对
最后build add.dll的时候,
总是报错如下:
--------------------Configuration: Add - Win32 Debug--------------------
Linking...
Performing Custom Build Step on .\Debug\Add.dll
执行 c:\windows\system32\cmd.exe 时出错.
Add.dll - 1 error(s), 0 warning(s)
debug目录下倒是生成了add.dll
可是无法生成add.lsb
请问是怎么回事啊?

LV里的CIN节点,操作繁琐。。。可以直接无视掉
要调用C程序,直接用C写个DLL,然后再用CLF节点调用DLL,相当方便。
而且如果是购买的数据采集卡,提供的驱动可能没有现成的VI,但是DLL是肯定有的

按照labview6.1帮助里面的例子,
做一个求数组平均值的dll
到了VC++6.0里面编译.c文件是
告诉我找不到Extcode.h啊?
cintools目录下面的labview.lib和extcode.h我已经添加到VC的project里面了啊?
俺新学初练,请大侠指教~~

直接删掉这一行

也不对啊?
我的C代码是
/* Call Library Source File */
#include "extcode.h"
long avg_num(float a[], long size, float *avg);
long avg_num(float a[], long size, float *avg)
        {
        int i;
float sum=0;
if(a != NULL)
{
for(i=0;i < size; i++)
sum = sum + a[i];
}
else
return (1);
*avg = sum / size;
return (0);
        }
如果注释调头文件那句,就报告
--------------------Configuration: 123 - Win32 Debug--------------------
Compiling...
myshare.c
c:\add\123\myshare.c(12) : error C2065: 'NULL' : undeclared identifier
c:\add\123\myshare.c(12) : warning C4047: '!=' : 'float *' differs in levels of indirection from 'int '
执行 cl.exe 时出错.
myshare.obj - 1 error(s), 0 warning(s)

别用lv生成的.c,用VC的dll向导生成一个project,把你的函数copy过去

如果你对lv 和vc都不熟悉就比较惨了
这个在lv的安装目录下会找到,不过include这个之后还要包其他的东西,简单的办法,你把这个文件相同目录下的所有文件都考到你自己的程序目录下

那个头文件并不是必须的,生成一个windows的标准dll即可

独立的dll是不需要的,如同调windows自身的dll一样,
如果是cin节点,或是dll本身又调了lv的dll,就需要了

这个函数只有前面的声明是lv给的
中间都是我写的啊
而且看那个声明应该没问题啊,我自己写也是这样了啊?
我是在VC里面向导一个空的dll project
然后把.c加入的

我建议:先去找点VC怎么写dll的资料看看先。。。。

唉,我也想啊,对VC实在太不熟了
我就想干最简单一件事,用lv调用c,给378的并口输出一个U8型数值
以后估计也不用VC和lv了,想速成一下……

现在手头只有VC2005,明天去实验室给你弄个example上来
不过你要给并口输出数,还是得去看看VC相关的东西

呵呵,多谢啦!
我自己也继续努力!
直接控制端口,nt操作系统下好像都不行
不过实验室的是98,应该就能用头文件conio.h的 _outp()函数了!
明天去实验室试试~~

哦....学学VC或者其它C环境吧,你是不会写dll

控制端口需要驱动层编写
但是并口有接口,可以当成文件操作

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top