`
tzraeq
  • 浏览: 82383 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

VARIANT 用法

    博客分类:
  • C++
阅读更多
最近接触到C++,主要是ObjectARX的开发,中间夹杂着一些com的使用,下面介绍一下VARIANT的用法.

首先,VARIANT,是一个不知道类型的变量,通过动态设置其vt属性,来决定从它的哪个属性里来取值.下面这段程序是将VARIANT设置成一个DOUBLE的数组

	CArray<double> points;
	VARIANT VAR;
	SAFEARRAYBOUND mSAB[1];
	mSAB[0].lLbound = 0;
	mSAB[0].cElements = points.GetSize();

	VariantInit(&VAR);
	VAR.vt = VT_ARRAY | VT_R8;
	VAR.parray = SafeArrayCreate(VT_R8, 1, mSAB);

	long i = 0;
	for(i = 0; i < mSAB[0].cElements; i++)
	{			
		SafeArrayPutElement(VAR.parray, &i, &points.GetAt(i));
	}


其实这段程序较为麻烦,今天发现一个较为简单的做法,目前试用上没发现问题,也请C++的高手们多多指点.代码如下:
	COleSafeArray pointList;
	pointList.CreateOneDim(VT_R8,points.GetCount(),points.GetData());
分享到:
评论

相关推荐

    variant 用法

    "variant 用法"主要指的是在编程中使用`variant`数据类型的过程,它通常用于存储不同类型的数据,如整型、浮点型、字符串等。在C++编程中,`variant`是Microsoft的Active Template Library (ATL)或Microsoft ...

    VARIANT的用法

    4. 使用数据:读取VARIANT中的数据,同样需要根据`vt`选择正确的方法。 5. 清理VARIANT:使用`VariantClear`函数清理VARIANT,释放可能的资源。 VARIANT的使用使得在不同组件间传递复杂数据变得简单,但同时也需要...

    Allegro Variant BOM 操作指导

    Variant BOM 的基本使用模型包括以下几个步骤: 1. 定义产品变体:用户需要定义产品变体的规则和参数,包括变体的名称、描述、属性和参数。 2. 配置变体选项:用户需要配置变体的选项,包括变体的规则、参数和属性...

    variant_t的用法

    variant_t的详细用法解说 COleDateTime vartodate(const _variant_t& var) { COleDateTime value; switch (var.vt) { case VT_DATE: { value = var.date; } break; case VT_EMPTY:

    AltiumDesigner20装配变量Variant使用说明 .pdf

    以上步骤表明了Altium Designer20中装配变量Variant的使用方法,强调了其在设计灵活性和生产过程中的重要性。通过正确配置和应用这些装配变量,工程师能够轻松管理不同版本的PCB设计,实现高效的设计生产流程。这些...

    Variant输入出参数,ocx传递byte数组,safearray使用方法,vc写ocx在vb下调用

    本话题主要聚焦于如何在VC(Visual C++)中编写OCX控件,并在VB(Visual Basic)中进行调用,特别是涉及到 Variant 输入/输出参数、通过 OCX 传递字节数组以及 SafeArray 的使用方法。 1. Variant 输入/输出参数: ...

    delphi variant的一些操作函数

    通常,该函数的用法如下: ```delphi v := VarArrayOf(1, 2, 3, 4); // 创建一个包含四个整数的 Variant 数组 ``` #### VarArrayRedim() `VarArrayRedim()` 函数用于改变 Variant 数组的尺寸。当需要扩展或缩小...

    ADO中_variant_t变量的使用与转换

    标题中提到的"ADO中_variant_t变量的使用与转换"是一个关键的编程实践,它涉及如何有效地操作和转换 Variant 数据。_variant_t 是ATL(Active Template Library)中的一个类,它封装了COM接口中的VARIANT数据类型,...

    variant-form-master.zip

    "variant-form-master"显然就是这样一款组件,它可能包含了自定义的Vue指令、插槽、计算属性和方法等,用于实现动态和交互性的表单设计。表单设计器允许用户通过拖拽和配置的方式,无需编写HTML和JavaScript代码,...

    博途利用MOVE-BLK-VARIANT实现混合数据类型的块移动

    通过这个范例,学习者可以深入理解`MOVE-BLK-VARIANT`指令的使用方法,并将其应用于实际项目中,提升编程效率和程序的可维护性。同时,这也是一个很好的学习素材,可以帮助初学者更好地掌握西门子PLC编程技巧。

    _variant_t类型转换

    例如,如果目标是字符串类型,那么根据`_variant_t`的实际类型,可能需要调用不同的函数或方法来完成转换。如示例代码所示,对于`VT_I4`类型的`_variant_t`,可以使用`Format`函数将其转换为字符串;对于`VT_BOOL`...

    TIA博途_通过Variant操作数组实现华氏度数据批量转换成摄氏度的具体方法.docx

    通过本文的学习,我们不仅了解了如何使用TIA博途软件中的Variant特性来实现华氏度到摄氏度的批量转换,还掌握了具体的编程步骤和调试方法。这种技术对于处理大量温度数据的自动化系统来说非常实用。此外,通过封装...

    利用Variant变量用DELPHI操作EXCEL

    利用Variant变量用DELPHI操作EXCEL.zip

    delphi Variant传文件

    如果使用COM组件进行通信,可以创建一个接口,该接口有一个接受Variant参数的方法,用于接收和处理文件数据。 4. **接收和写入文件**:在接收端,接收到Variant后,将其转换回字节数组,然后写入到目标文件。 ```...

    BCB使用Variant和Automation对象操作Word.docx

    通过以上示例可以看出,虽然使用 Variant 和 Automation 对象在 BCB 中操作 Word 文档的方法与 VBA 有所不同,但都能有效地完成任务。对于 C++ 开发者而言,掌握这些技术可以在不需要依赖额外控件的情况下轻松集成 ...

    variant radi circle detection

    这个技术结合了“Hough变换”这一经典方法,用于识别图像中的几何形状,特别是圆。Hough变换是一种参数空间搜索算法,它可以将图像中的直线、圆或其他曲线转换为参数空间中的点,通过在参数空间中找到高密度点,可以...

    matlab与c/c++混合编程中VARIANT与c++数据类型转换类

    1. 初始化VARIANT:在使用VARIANT之前,必须先用` VariantInit(&var)`函数对其进行初始化,避免未定义的内存行为。 2. 设置VARIANT类型:使用`VariantClear()`和` VariantChangeType()`函数可以改变VARIANT的类型。...

    _bstr_t和_variant_t

    1. **数据库操作**:在使用 ADO 连接数据库时,经常需要将 SQL 语句作为 _bstr_t 类型传入 Open 方法中,而从数据库获取的数据通常以 _variant_t 形式返回。这些数据可以根据实际需要进一步转换为其他类型。 ```...

    Python库 | open_variant-0.4.7-py3-none-any.whl

    资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:open_variant-0.4.7-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

Global site tag (gtag.js) - Google Analytics