From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



我如何在Visual C++ 6.0下正确处理来自TestStand API的ActiveX字符串类型数据?



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

问题: 我尝试在Visual C++ 6.0下调用来自TestStand API的功能函数,但是我不是很清楚该如何正确声明字符串数据类型。编译器给我的反馈是需要运用Short**型,但是我知道这并不是适用于字符串的数据类型。我如何在Visual C++ 6.0下正确处理来自TestStand API的ActiveX字符串类型数据? 

解答:

因为TestStand API是基于ActiveX通用型接口被调用的,所以其中的字符串类型声明的确和Visual C++ 6.0下的普通字符串数据类型声明有所不同。而面对不同的应用领域,Visual C++ 6.0也支持多种多样的字符串类型声明。TestStang API以及许多其他ActiveX在C++下的应用,是将字符串数据以BSTR格式返回给C++平台的。如果实际运用中需要获得标准的C下字符串数据,需要运用以下的转换代码:

_bstr_t tmp([BSTR variable], FALSE); //wrap the BSTR
CString cs(static_cast(tmp)); //convert it


值得注意的是,以上代码中“Tmp”这个变量是用来做数据类型转换而被声明的变量。而 [BSTR variable]在真实的程序中需要被真实的变量名所替代。并且相同名字的BSTR型变量需要在之前的程序中被声明。而“cs”是被返回的C String型的变量的名字。



相关链接:

附件:





报告日期: 12/05/2006
最近更新: 08/04/2011
文档编号: 4448UOGJ