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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/193998.html