我在使用Borland C来开发NI-Scope的时候出现非法的浮点运算的操作



主要软件:
主要软件版本: 3.6
主要软件修正版本: N/A
次要软件: N/A

问题:

我在使用Borland C开发程序并使用NI-Scope驱动提供的C的API函数,当我执行niScope_InitiateAcquisition, niScope_AutoSetup,或者niScope_Commit时,我得到了一个非法的浮点操作错误。程序并未得到错误的状态指示,但是仍旧被中止了。

有什么办法可以解决这个错误,并且成功的执行我的应用程序吗?



解答:

这个错误主要是由于Borland C编译器会将浮点转换错误显示出来给用户。大多数编译器都会在内部处理掉这个问题,但是对于Borland C来说,您需要将这些错误屏蔽掉。通过加入如下代码可以屏蔽掉这个错误:

#include <float.h>
int control_word_x87 = _control87(MCW_EM, MCW_EM);

这步操作可以使程序屏蔽掉浮点转换产生的错误并且能够正确的执行您的应用程序。

注意:请确保你是参考的Borland C的库,地址为<Program Files>\IVI Foundation\IVI\Lib\bc。默认情况下,Borland C的范例一般被放置于如下地址下:<Program Files>\IVI Foundation\IVI\Lib\msc。



相关链接: KnowledgeBase 3F4DMOTY: How Can I Use The NI-DAQmx ANSI C Function Library With Borland C and Delphi?

附件:





报告日期: 06/04/2010
最近更新: 01/17/2013
文档编号: 5A3C8OFN