LabWindowsCVI扫盲技巧贴
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LabWindows/CVI 扫盲+技巧贴(CVI 学习必看)
字体: 小 中 大 | 打印 发表于: 2008-6-11 13:15 作者: LAVA 来源: TestDevelop
1、什么是LabWindows/CVI ?
NI LabWindows/CVI 是一类久经验证的ANSI C 集成开发环境,为工程师和科学家提供用于创建测试和控制应用的全套编程工具。NI LabWindows/CVI 兼有ANSI C 的耐用性、复用性和特定的工程性能,适用于仪器控制、数据采集、分析和用户界面开发。
2、CVI 适合什么人使用?
CVI 是基于ANSI C 的快速开发环境,适用于有C,C++基础。使用VB ,VC ,BC 运用控件式组织用户界面的工程师。
3、CVI 有几种版本?
基本版RMB10220
∙ ANSI C 开发环境 ∙ 用户界面设计 ∙ 数据采集和仪器控制
∙
IVI 驱动连接
完整版RMB21305
∙ 首选的自动化测试软件包 ∙
300多个数学/分析函数
∙ 因特网连接 ∙ Windows SDK ∙
.NET 开发工具
目前最新的是8.5版,下图是CVI 的版本历史:
TimeLine545px.png
4、CVI开发的程序能否独立运行?
可以。和所有的开发工具一样,CVI编写的程序只要提供CVI运行支持库(CVI runtime)即可。
5、CVI的运行支持库在哪里下载?
LabWindows/CVI Run-Time Engine 8.5.1 - Windows 2000/Vista x64/Vista x86/XP
/apps/utf8/niup.ni?ap=GB_NIDU&ip=209&loc=en-US&du=/nidu/cds/view/p/id/907/lang/zhs
LabWindows/CVI Run-Time Engine 8.1.1 for Windows 2000/Vista x64/Vista x86/XP
/support/softlib/labwindows/cvi/Run-Time%20Engines/8.1.1/NILWCVIRTE811.exe
6、是否要每次手动安装支持库?
否,CVI程序带有发布功能。自动生存你项目需要的所有运行库。
菜单Build——distributions下。
7、EXE程序的信息在哪里定义?
菜单Build——Build steps...下可以更改EXE的图标,版权信息等等。
8、新手怎么开始学习CVI?
新手可以先看看这些书籍和资料。
/bbs/thread-4658-1-1.html
/bbs/thread-3180-1-1.html
/bbs/thread-3173-1-1.html
9、CVI在哪里下载?
/bbs/thread-4667-1-1.html
/sq/?uid/4829
10、如何在CVI中获得系统信息
使用CVI提供的toolbox:
GetWinOSVersion 获得操作系统信息
GetWindowsDirs 获得Windows目录
GetDiskSpace 得到磁盘空间大小,对于文件保存有用,先判断磁盘大小再保存,否则提示。
GetMemoryInfo 获得内存信息。
CODE:
GetDiskSpace ("C:", totalBytes64, &freeBytes64);
diskSpaceMB = (double)totalBytes64.hiBytes * 4096 + (double)totalBytes64.loBytes/1048576;
freeSpaceMB = (double)freeBytes64.hiBytes * 4096 + (double)freeBytes64.loBytes/1048576;
我也来说两句查看全部回复
最新回复
LAVA (2008-6-11 13:45:21)
11、CVI中如何打开别的应用程序文件,如Doc,PDF,HLP?
CODE:
OpenDocumentInDefaultViewer ("C:\example.pdf", VAL_NO_ZOOM);12、怎么在CVI中使用非NI公司的PCI板卡?
其它厂家虽然没有NI这样的FP文件或向导,但都提供DLL动态链接库使用。VCBC,CVI通用。
13、如何使用DLL?
需要DLL文件和H头文件,LIB文件。#inlcude "头文件名.h"加入CVI中。将*.lib文件加入工程中。工程右击——add file...即可使用DLL。
14、没有LIB文件如何使用DLL?
在CVI菜单中打开DLL相应的.h文件。Option——Generate DLL Import Library选择DLL文件,即可生成LIB文件。
15、如何根据DLL和.H文件看到C代码?
Option——Generate DLL Import source选择DLL文件,即可生存C文件。不过只有函数定义,源代码就不用想了,现在还没有DLL的破解。
16、如何创建DLL程序文件?
Build——Target Type——Dynamic Link Library ,即可将当前的工程生存DLL形式。同理Static Library生存Lib形式。
17、运行时窗口的响应慢,显示不及时?
CVI是事件驱动式的运行方法,排队响应个个事件。造成显示滞后。需要强制在函数中加入ProcessSystemEvent()。当然有效的方法是使用CVI 或API的多线程技术。
18、CVI中获取本地计算机的IP地址
可以调用GetTCPHostAddr 函数。需要注意的是,该函数获取的是当前程序运行的电脑的默认IP地址。GetTCPHostAddr 函数会向Windows 操作系统获取所有可用的IP地址的列表,但返回的只是其中的第一个。
同样地,如果要获取该电脑的所有IP地址,可以调用GetAllTCPHostAddresses 函数来实现。
19、CVI如何实现右键菜单功能?
调用编辑好的右键菜单可以使用以下两个函数实现:
CODE:
menuHandle = LoadMenuBar (0, "popupmenu.uir", MENUBAR);
RunPopupMenu (menuHandle, MENUBAR_MENU1, panel, eventData1, eventData2, 1, 1, 1, 1); 20、CVI对多线程的如何支持?
CVI对多线程的支持(1)概念篇
【原帖地址:/logs/2006/04/2366573.html】
多线程对于windows应用程序来说,并不是什么先进的技术,打开你的任务管理器,选择“进程”分页,点击菜单的在“查看”->选择列,在“线程计数”前打勾,确定后你在“进程”分页里头看到现在在运行的绝大多数程序都基于2个以上的线程。
那么进程线程的概念以及他们之间的关系又是什么呢?
线程技术是指开发架构将应用程序的一部分分离为“线程”,使线程与程序其余部分执行步骤不一致。线程是一种特殊的对象,是操作系统执行多任务的一部分,它允许应用程序的一部分独立于其他对象而单独运行,因此也就脱离了应用程序的常规执行顺序。
目前主流的Windows系统都是基于多任务机制,即可同时运行多个应用程序(“应用程序”这个词并不恰当,恰当的说法是“进程”)。当启动应用程序时,系统就会为该应用程序分配所需的内存以及其他资源。内存和资源的物理分离叫做进程。换言之,进程是应用程序的一个运行实例,当然,应用程序可以启动多个进程。每个进程至少有一个基本线程(主线程)。线程与数据一起隔离在某一物理区域,在进程中声明的数据可通过该线程进行访问。
Windows操作系统为抢占式多任务运行机制,即采用时间片轮换的方式来执行多任务,时间片轮换的基本对象是线程。操作系统为每一个线程分配时间片,让该线程在这个时间段内运行,之后中断该线程的运行,启动另外的线程执行。多线程技术的优势在于将进程分解,在主线程外产生一个或几个辅助线程,用于完成如数据采集、网络访问、数据存储等后台工作。