vs2008 c++ 使用NI的Measurement Studio工具 编译不过

来源:互联网 发布:天心软件 编辑:程序博客网 时间:2024/05/21 17:04

Measurement Studio做仪表很是方便,原来我用过VC6.0中适配的这个工具。由于6.0太老了跟vin7兼容性不好,准备切换到VS2008。

我想要做一个仪表,所以又想起了NI的这个工具。VS2008和MStudio2009是适配的,相信搜到我这篇博文的同学已经正确安装了。

一切就绪新建一个基于MS(MStudio2009Std)的单文档类型CFormView类的工程。

添加一个Graph的控件,为该控件添加一个control类型的成员变量m_graph1,编译,问题出现:

1>test3View.cpp
1>h:\vs2008\test3\test3\cwgraph1.h(530) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>h:\vs2008\test3\test3\cwgraph1.h(530) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>h:\vs2008\test3\test3\cwgraph1.h(531) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>h:\vs2008\test3\test3\cwgraph1.h(535) : warning C4183: “GetPlotAreaImage”: 缺少返回类型;假定为返回“int”的成员函数
1>h:\vs2008\test3\test3\cwgraph1.h(536) : error C2061: 语法错误 : 标识符“CWPictureDisp”

。。。。。。。。。。。。。。。

问题原因:

    一句话,VS没有链接到图表框对应的类库,导致编译失败。

    Measurement Studio 包含一个用户库来为Measurement Studio ActiveX控件提供接口。这些类以CNi为前缀命名。例如,图表控件的类是CNiGraph,坐标的类是CNiAxis. 除了具有完整的功能外,这些类比自动生成的代码具有一系列优点。这些优点包括函数重载、可从任何进程对控件进行访问、自动从COM数据类型进行转换,例如将BSTRSAFEARRAY转换为MFC数据类型,或者转换为基于MFC的Measurement Studio数据类型,如 CString 和CNiReal64Vector

    Visual Studio添加变量向导需要知道添加到工程中的变量的信息,以便向导确定在声明变量的时候使用哪些VC类.如果添加变量向导在C++工程中无法获取这些信息,将会生成代码,并会在工程文件中写入这些信息,

解决办法:

  1、删除新产生的两个文件,删除#include "cwgraph1.h"

  

2、把变量的声明由现有类,修改为CNi开头的类

    CCwgraph1 m_graph1; ---->>>>>

    CNiGraph m_graph1;

    查看NI所支持的类,根据不同控件切换不同的类,查看路径:

Program Files (x86)\National Instruments\measurmentstudio2009\MeasurementStudioVS2008\VCNET\Include

这个是多有控件类的头文件。


至此编译通过,可以正常使用控件里面的功能了。


参考文件:

http://digital.ni.com/public.nsf/allkb/52CE71BA5135BB13862574C80033E1F1

阅读全文
0 0
原创粉丝点击