问一个labwindows/cvi的问题,求大神关注啊。。。。
答案:2 悬赏:30
解决时间 2021-02-21 01:03
- 提问者网友:王者佥
- 2021-02-20 18:53
问一个labwindows/cvi的问题,求大神关注啊。。。。
最佳答案
- 二级知识专家网友:荒野風
- 2021-02-20 19:21
CVI肯定可以用结构体,它是面向C语言的,
typedef struct _USB_BOS_DESCRIPTOR
{
UCHAR bLength ;
UCHAR bDescriptorType ;
USHORT wTotalLength;
UCHAR bNumDeviceCaps;
}*PUSB_BOS_DESCRIPTOR;
这样定义试一下
或者
typedef struct
{
UCHAR bLength ;
UCHAR bDescriptorType ;
USHORT wTotalLength;
UCHAR bNumDeviceCaps;
}*PUSB_BOS_DESCRIPTOR;
这样肯定没得错追答
追问:谢谢你啊,我发现好像不是结构体的问题。。。是在CVI中不识别UCHAR,USHORT,bool等这些数据类型,是不是缺少什么头文件??还想再问个,就是CVI中可以用C++的类吗??
追答:CVI肯定不能识别UCHAR,USHORT这样的数据类型,UCHAR,USHORT这两个的意思是无符号字符型、无符号短整型,由于unsigned char这样写比较长,为了简便,人们一般都宏定义 typedef unsigned char UCHAR,typedefunsignedshortUSHORT,懂了吗??
追问:UCHAR,USHORT这些我懂了。再问您几个问题啊,我真的很不懂,希望你别嫌我烦哪~~
(1)为什么CVI中不认识bool类型??
(2)怎样能在CVI中用类和对象啊??由于我要在CVI中调用一个静态链接库,该库的头文件中就定义了类,这样我一编译就出错,我该怎么办呢,如果把该静态链接库转换成dll再调用的话是不是就可以用呢??
追答:bool变量是肯定支持的,只不过要加头文件,CVI是基于C的,只要C语言能做的东西CVI都行。头文件有类肯定不行的,叫你一个C调用C++函数的方法。
首先,要在C++的函数前面加extern "C",这样的函数才能被其他语言调用。当然还得要求形参类型和返回类型都是C语言支持的类型。
其次,在把两种语言的.o文件链接在一起的时候,gcc要加选项-lstdc++。
有类没关系,只要你这个要引出的函数不是类里面的函数,就可以供C语言程序调用。
typedef struct _USB_BOS_DESCRIPTOR
{
UCHAR bLength ;
UCHAR bDescriptorType ;
USHORT wTotalLength;
UCHAR bNumDeviceCaps;
}*PUSB_BOS_DESCRIPTOR;
这样定义试一下
或者
typedef struct
{
UCHAR bLength ;
UCHAR bDescriptorType ;
USHORT wTotalLength;
UCHAR bNumDeviceCaps;
}*PUSB_BOS_DESCRIPTOR;
这样肯定没得错追答
追问:谢谢你啊,我发现好像不是结构体的问题。。。是在CVI中不识别UCHAR,USHORT,bool等这些数据类型,是不是缺少什么头文件??还想再问个,就是CVI中可以用C++的类吗??
追答:CVI肯定不能识别UCHAR,USHORT这样的数据类型,UCHAR,USHORT这两个的意思是无符号字符型、无符号短整型,由于unsigned char这样写比较长,为了简便,人们一般都宏定义 typedef unsigned char UCHAR,typedefunsignedshortUSHORT,懂了吗??
追问:UCHAR,USHORT这些我懂了。再问您几个问题啊,我真的很不懂,希望你别嫌我烦哪~~
(1)为什么CVI中不认识bool类型??
(2)怎样能在CVI中用类和对象啊??由于我要在CVI中调用一个静态链接库,该库的头文件中就定义了类,这样我一编译就出错,我该怎么办呢,如果把该静态链接库转换成dll再调用的话是不是就可以用呢??
追答:bool变量是肯定支持的,只不过要加头文件
首先,要在C++的函数前面加extern "C",这样的函数才能被其他语言调用。当然还得要求形参类型和返回类型都是C语言支持的类型。
其次,在把两种语言的.o文件链接在一起的时候,gcc要加选项-lstdc++。
有类没关系,只要你这个要引出的函数不是类里面的函数,就可以供C语言程序调用。
全部回答
- 1楼网友:duile
- 2021-02-20 20:14
我把你这段结构体定义直接贴到我工程上,编译能通过啊追答
追问:你是放在CVI里吗??
追答:当然咯,我很多软件都是用CVI开发的,是不是什么头文件没包?
追问:应该是,但是我都不知道应该包含什么头文件,而且所包含的头文件应该去哪里找到呢??可否问你如何在CVI中调用由C#生成的dll呀??谢谢你哦~~
追问:你是放在CVI里吗??
追答:当然咯,我很多软件都是用CVI开发的,是不是什么头文件没包?
追问:应该是,但是我都不知道应该包含什么头文件,而且所包含的头文件应该去哪里找到呢??可否问你如何在CVI中调用由C#生成的dll呀??谢谢你哦~~
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |