LabCVI常见问题及解决方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LabCVI常见问题及解决方法

LabCVI常见问题及解决方法(一)

1. 使用CVI9.0调用由VC++6.0编写的DLL,该DLL在VC中调用是可以的,输出方式也是C语言的。但是在CVI中调用该DLL时,总是提示missing prototype,如何解决?

答:设置BUILD OPTION

在options->Build options | c language options中取消Require function prototypes的检测

2. CVI中如何向设计好的word表格中添加文字和数据?

答:先在表格中需要添加文字和数据的地方做一个“书签”,在CVI中打开该文档后,使用Word_GetProperty (currSelHandle, NULL, Word_SelectionBookmarks, CAVT_OBJHANDLE, &rangeHandle);获得“书签”信息,然后再向该“书签”处添加文字。

3. CVI中如何将波形图控件的图片放到剪贴板中?

答:首先使用GetCtrlDisplayBitmap (panel, FORCEPANEL_GRAPH, 1, &bitmap);获得波形图控件的图片,然后使用ClipboardPutBitmap (bitmap);将图片放入到剪贴板中。

4. CVI中是否支持指向函数的指针,如何实现?

答:可以实现,如下例:

int(*pmax)(int a, int b);

int x,y,z;

pmax=max;

printf("input two numbers:\n");

scanf("%d%d",&x,&y);

z=(*pmax)(x,y);

5. CVI中如何使用非NI公司的硬件产品?该公司提供了一个fp文件。

答:一般来说通常可以调用产品销售商提供的动态链接库,有些大公司也提供fp文件,该文件可以直接使用,就可以达到使用硬件的目的了。在使用前,可以直接将该文件添加入项目中,也可以在Library中定制fp文件的加载。

6. CVI中如何使用非NI公司的硬件产品?该公司提供了一个fp文件。

答:一般来说通常可以调用产品销售商提供的动态链接库,有些大公司也提供fp文件,该文件可以直接使用,就可以达到使用硬件的目的了。在使用前,可以直接将该文件添加入项目中,也可以在Library中定制fp文件的加载。

7. CVI中如何实现多窗口显示?

答:在创建窗口面板时需要设置窗口属性为浮动型窗口,使用LoadPanel和DisplayPanel函数加载和显示窗口,窗口使用完成后需要使用DiscardPanel销毁。

8. CVI中如何实现让程序只运行一个实例?

答:需要使用WindowsSDK函数:hWnd = FindWindow(NULL,"TestForSingle");

if(hWnd != NULL)

{

MessagePopup("Warnning","程序已经运行");

return 0;

}

9. CVI中如何实现打印表格功能(输出到打印机)?

答:利用CVI中的工具包Report Generation将表格转换Word文档后,使用NIReport_Print 函数直接打印就可以了,如果需要设置打印机则需要使用函数:ConfigurePrinter来配置打印机

10. CVI中如何实现自动识别系统中的NI数据采集产品?

答:首先使用DAQmxGetSystemInfoAttribute (DAQmx_Sys_DevNames, DeviceName, 10240);获得系统中的所有设备,具体的设备型号需要使用:DAQmxGetDeviceAttribute (string[i], DAQmx_Dev_ProductType, ProductType, 100);

6. CVI中如何访问SQL数据库?

答:可以有2种方法:1是使用NI的数据库连接工具包。在ODBC数据源中建立DSN。DSN需要和你的数据库文件关联。设置好后就可以在程序中使用NI提供的函数进行调用了。2是使用ActiveX方式进行调用。

11. 如何在VC中调试用CVI编写的DLL?

答:首先应有VC写的调用程序。在CVI中需要进行的设置:在Specify External Process中选择调用dll的可执行文件。配置Target Settings为Debug,选择dll的目录为可执行文件所在的目录。就可以VC调试CVI的DLL,调试时,会自动进入CVI环境。

12. 在CVI中生成DLL时,是否可以将其他的DLL(或LIB)加入到工程中来?

答:库文件可以直接加入工程中,然后直接使用函数名就可以了。DLL文件可以像通常的DLL调用一样的方式进行调用分为静态调用和动态调用。

13. 有时候在NI网站上下载的CVI范例有些是没有h文件,只有C文件、uir文件和prj文件等,当打开运行时,CVI会提示没有找到*.h文件,是否要自己找,那怎么办呢?

答:当打开范例时,我们可以新建一个uir文件,把原来程序面板上的控件复制并粘贴到新面板上,接着动手点击:Code>Generate>All code。这时CVI会提示要保存该未命名面板,当命名后,接着选择一个退出控件就可以生成代码了。此时已经有了相应的h文件了,然后把源C代码复制并覆盖新生成的C文件并且保存,再在刚保存的C文件里找到调用之前没有的那个h文件名将其修改过来就可以了。这时运行程序就不会再报没有h文件的错误了。

14. CVI8.5中,如何在同一板卡上的两个输出通道上同时输出不同频率的波型?

答:CVI多通道波型输出的编程方式与LabVIEW多通道波型输出的编程方式一样,都是把描述各个通道波型的一维数组合并成二维的数组,再通过写函数把二维数值输出。具体到CVI编程中,假设要输出两个不同频率的正弦波,首先要用两个sine wave函数,设置不同的频率,各产生一个一维数组,再将此两个一维数组合并成二维数组,通过DAQmxWriteAnalogF64函数将波型输出。例子可到我们的技术论坛,CVI板块下载。

相关文档
最新文档