精华内容
下载资源
问答
  • 还有许多操作variant 变量的函数,你可以用它们进行特定的类型转换,或通过它们获取variant变量的类型信息(例如VarType 函数),当你用variant变量写表达式时,Delphi会自动调用这些类型转换和赋值函数。...
  • 利用Variant变量用DELPHI操作EXCEL.zip
  • C++Builder中的Variant变量

    千次阅读 2014-11-22 14:31:03
    Variant arr = VarArrayCreate (OPENARRAY (int, (0,3)), varVariant); char *p="how are you!"; if (arr. IsArray ()) { arr. PutElement (12, 0); arr. PutElement ("hello", 1);
    Variant数组可以放任何变量,这一点和TVarRec类似    
        Variant arr = VarArrayCreate (OPENARRAY (int, (0,3)), varVariant);//包含4个元素,下标0~3
        char *p="how are you!";
        if (arr. IsArray ())
        {
           arr. PutElement (12, 0);
           arr. PutElement ("hello", 1);
           arr. PutElement ('a', 2);
           arr. PutElement (p, 3);
        }
        Variant c = arr.GetElement(3);
        ShowMessage(c);

    展开全文
  • VARIANT变量

    千次阅读 2008-07-27 16:54:00
    1. 直接使用VARIANT变量a. 定义VARIANT变量可以直接定义VARIANT类型的变量。 VARIANT val; b. 初始化VARIANT变量在使用VARIANT变量之前,一定要初始化。 VariantInit(&val); c. 设置变量值设置变量值前如果...

     1.  直接使用VARIANT变量
    a.   定义VARIANT变量
    可以直接定义VARIANT类型的变量。

     

    VARIANT val;

     

    b.   初始化VARIANT变量
    在使用VARIANT变量之前,一定要初始化。

     

    VariantInit(&val);

     

    c.   设置变量值
    设置变量值前如果VARIANT变量中已经有值,先要清除原有数据。

     

    VariantClear(&val);

    val.vt = VT_I4;   // 设置类型

    val.lVal = 10;    // 设置变量值

     

    d.   清除VARIANT变量
    在使用完VARIANT变量后,要清除变量,否则会发生内存泄漏。

     

    VariantClear(&val);

     

    e.   动态分配VARIANT变量
    如果要动态分配VARIANT变量,应该使用标准的COM内存管理函数。

    标准COM内存管理函数包括CoTaskMemAlloc、CoTaskMemFree和CoTaskMemRealloc。

     

    VARIANT * pVal;

    pVal = (VARIANT *)CoTaskMemAlloc(size_of(VARIANT));

    VariantInit(pVal);

    pVal->vt = VT_I4;

    pVal->lVal = 10;

    ...

    VariantClear(pVal);

    CoTaskMemFree(pVal);

     

    2.  通过CComVariant使用VARIANT变量
    CComVariant是ATL对于VARIANT的简单包装。通过CComVariant可以更简单的使用VARIANT,而不必担心没有进行初始化或清除。如果没有特殊情况,应该尽量使用CComVariant而不要使用VARIANT。

    以下是使用CComVariant的代码实例。

     

    CComVariant Val;

    Val.vt = VT_I4;

    Val.lVal = 10;

    // Val 不必清除

     

    以下是使用CComVariant数组的例子。

     

    CComVariant * pVal;

    pVal = new CComVariant[10];

    for (int i = 0; i < 10; ++i)

    {

        pVal[i].vt = VT_I4;

        pVal[I].lVal = i + 1;

    }

    ...

    delete[] pVal;

    展开全文
  • 在VC中如何使用VARIANT变量

    千次阅读 2009-12-13 15:34:00
    用MapX写程序时,有些方法的输入参数和...在vc中主要用COleVariant对象定义variant变量,以下面的例子为说明:例如:要取得pdataset中某一行某一列的属性值,pfeature,pfield分别表示行和列,要读取某一个值,该值为Str

    用MapX写程序时,有些方法的输入参数和返回值都是VARIANT类型,在VB中用dim pv as variant就可以了,而在Vc中稍微麻烦一点,不过稍微尝试一二,就会发现不过如此了。在vc中主要用COleVariant对象定义variant变量,以下面的例子为说明:

    例如:要取得pdataset中某一行某一列的属性值,pfeature,pfield分别表示行和列,要读取某一个值,该值为String类型变量。

             COleVariant vRow;

             COleVariant vCol;

             COleVariant vVal;

     

             vRow.vt = VT_DISPATCH;

             vRow.pdispVal = pfeature.m_lpDispatch;

             vRow.pdispVal->AddRef();

     

             vCol.vt = VT_DISPATCH;

             vCol.pdispVal = pfield.m_lpDispatch;

             vCol.pdispVal->AddRef();

     

             vVal = pdataset.GetValue(vRow, vCol);//COleVariant(7L));

     

             vVal.ChangeType(VT_BSTR);

            

             m_strfeaturevalue = vVal.bstrVal;

             m_edtfeaturevalue.SetWindowText(m_strfeaturevalue);

    展开全文
  • VARIANT变量转换

    千次阅读 2013-11-05 22:26:23
     我们怎么把一个整形或double型等其它的类型赋值给VARIANT变量呢,或者是VARIANT变量怎么赋值给int等其它类型呢。 2、 VARIANT是一个结构体,它的结构体如下: struct tagVARIANT {  union {  

    1、 在VC++编程中,我们常常会遇到这样的函数,如:::SetValue(const VARIANTpropVal); 我们怎么把一个整形或double型等其它的类型赋值给VARIANT型变量呢,或者是VARIANT型变量怎么赋值给int等其它类型呢。

    2、 VARIANT是一个结构体,它的结构体如下:

    struct tagVARIANT {

        union {

            struct __tagVARIANT {

                VARTYPE vt;

                WORD    wReserved1;

                WORD    wReserved2;

                WORD    wReserved3;

                union {

                    ULONGLONG     ullVal;       /* VT_UI8               */

                    LONGLONG      llVal;        /* VT_I8                */

                    LONG          lVal;         /* VT_I4                */

                    BYTE          bVal;         /* VT_UI1               */

                    SHORT         iVal;         /* VT_I2                */

                    FLOAT         fltVal;       /* VT_R4                */

                    DOUBLE        dblVal;       /* VT_R8                */

                    VARIANT_BOOL boolVal;      /* VT_BOOL              */

                    _VARIANT_BOOL bool;         /* (obsolete)           */

                    SCODE         scode;        /* VT_ERROR             */

                    CY            cyVal;        /* VT_CY                */

                    DATE          date;         /* VT_DATE              */

                    BSTR          bstrVal;      /* VT_BSTR              */

                    IUnknown *    punkVal;      /* VT_UNKNOWN           */

                    IDispatch *   pdispVal;     /* VT_DISPATCH          */

                    SAFEARRAY *   parray;       /* VT_ARRAY             */

                    BYTE *        pbVal;        /* VT_BYREF|VT_UI1      */

                    SHORT *       piVal;        /* VT_BYREF|VT_I2       */

                    LONG *        plVal;        /* VT_BYREF|VT_I4       */

                    LONGLONG *    pllVal;       /* VT_BYREF|VT_I8       */

                    FLOAT *       pfltVal;      /* VT_BYREF|VT_R4       */

                    DOUBLE *      pdblVal;      /* VT_BYREF|VT_R8       */

                    VARIANT_BOOL *pboolVal;     /* VT_BYREF|VT_BOOL     */

                    _VARIANT_BOOL *pbool;       /* (obsolete)           */

                    SCODE *       pscode;       /* VT_BYREF|VT_ERROR    */

                    CY *          pcyVal;       /* VT_BYREF|VT_CY       */

                    DATE *        pdate;        /* VT_BYREF|VT_DATE     */

                    BSTR *        pbstrVal;     /* VT_BYREF|VT_BSTR     */

                    IUnknown **   ppunkVal;     /* VT_BYREF|VT_UNKNOWN */

                    IDispatch ** ppdispVal;    /* VT_BYREF|VT_DISPATCH */

                    SAFEARRAY ** pparray;      /* VT_BYREF|VT_ARRAY    */

                    VARIANT *     pvarVal;      /* VT_BYREF|VT_VARIANT */

                    PVOID         byref;        /* Generic ByRef        */

                    CHAR          cVal;         /* VT_I1                */

                    USHORT        uiVal;        /* VT_UI2               */

                    ULONG         ulVal;        /* VT_UI4               */

                    INT           intVal;       /* VT_INT               */

                    UINT          uintVal;      /* VT_UINT              */

                    DECIMAL *     pdecVal;      /* VT_BYREF|VT_DECIMAL */

                    CHAR *        pcVal;        /* VT_BYREF|VT_I1       */

                    USHORT *      puiVal;       /* VT_BYREF|VT_UI2      */

                    ULONG *       pulVal;       /* VT_BYREF|VT_UI4      */

                    ULONGLONG *   pullVal;      /* VT_BYREF|VT_UI8      */

                    INT *         pintVal;      /* VT_BYREF|VT_INT      */

                    UINT *        puintVal;     /* VT_BYREF|VT_UINT     */

                    struct __tagBRECORD {

                        PVOID         pvRecord;

                        IRecordInfo * pRecInfo;

                    } __VARIANT_NAME_4;         /* VT_RECORD            */

                } __VARIANT_NAME_3;

            } __VARIANT_NAME_2;

            DECIMAL decVal;

        } __VARIANT_NAME_1;

    };

    3、 Float型转化为VARIANT

    //float型转化为VARIANT

    VARIANT va1;

    float a1=m_Fre1_AD9852;

    va1.vt=VT_R4;///指明float数据,VT_I4是整型,VT_R8double

    //va1.lVal=a1; 

    va1.fltVal=a1; //指明fltVal是float型赋值,intVal是整型,dblVal是double

    m_Fre1_wknob.SetValue(va1);

    4、 VARIANT型转化为double型

    VARIANT var;

    var=m_Power_wknob.GetValue();//获取值

    value_power=var.dblVal; ///指明fltVal是float型赋值,intVal是整型,dblVal是double

    AMP_dBm_Reg=value_power;//赋值给double型

    展开全文
  • 工作经验总结之_VARIANT变量用法

    千次阅读 2008-11-15 14:04:00
    工作经验总结之_VARIANT变量用法 typedef struct tagCY{结构体原型typedef struct tagVARIANT { VARTYPE vt;//enum类型 unsigned short wReserved1//保留字段; unsigned short wReserved2; unsigned short ...
  • 判断判断Variant变量是否为空

    千次阅读 2013-10-14 11:35:12
    _variant_t bh; if(bh.vt==VT_EMPTY||bh.vt==VT_NULL)
  • 【06】variant 变量

    2011-09-28 23:52:00
    【01】variant 变量可以存储任何数据类型。一旦得到一个 variant 值,你可以把它拷贝给任何兼容或不兼容的数据类型。 如果你把值赋给不兼容的数据类型,Delphi 会力尽所能进行转换,无法转换则颁布一个运行时间错误...
  • 在把公司一些通用的东西写成sdk的过程中,看到公司以前工程师写成通过GetPrivateProfileString读取ini文件中的value,放到...我了解的是在使用variant类型的变量时,是需要指定它的类型才可以使用的。到底是怎么回事?
  • 先定义一些常见类型变量借以说明int i = 100;long l = 2001;float f=300.2;double d=12345.119;char username[]="张三";char temp[200];char *buf;CString str;_variant_t v1;_bstr_t v2;一、其它数据类型转换为字符...
  • _variant_t类型转换

    2011-05-16 23:44:11
    将 _variant_t 类型的变量,转换成任意类型
  • VARIANT 类型说明

    千次阅读 2017-06-15 18:12:16
    string CAdoConnection::VariantToString(const _variant_t &var) { string strValue; TCHAR szValue[1024] = {0x00}; switch (var.vt) { case VT_BSTR://字符串 case VT_LPSTR://字符串 case VT_LPWSTR://...
  • VS2013 VT_LPSTR和VT_LPWSTR声明还在但是在VARIANT中对应的pszVal和pwszVal没有了? 在VT_LPSTR和VT_LPWSTR上右键转到声明能跳过去,但是VARIANT类型的变量敲不出pszVal和pwszVal了
  • AltiumDesigner20装配变量Variant使用说明 .pdf
  • Variant变体类型的可以理解为:还不知道它是什么类型,将来它会自动变成我想要的类型。即“可变体”。
  • FunWo,tbWo: Variant; FunWo := SAPFunctions1.Add('ZPP_FM_WO_MAINTAIN'); tbWo := FunWo.tables.item('I_SCHIMP'); 想清除tbwo内存,请高手帮忙。在百度中查找到的c的清除方法。
  • ADO中_variant_t变量的使用与转换

    千次阅读 2014-05-16 00:16:11
    下载 源代码 ...用ADO做数据库,有个麻烦的事情就是_variant_t变量的使用,使用本例中封装的CConvert类转换就方便了。 // Convert.h: interface for the CConvert class. // //////////////
  • 不知道为什么SQL2005就是不能使用GetChunk到一个字节组,但是可以读取到Variant变量,我用StrPtr可以取得其内存的地址,用CopyMemory读取数据完全没有问题,但是写数据就不行了。 Dim mg(7) As Long, lm As Long,...
  • VC写的OCX,其中一个接口的参数为指针类型,为了供多种语言调用,OCX中将其定义成了VARIANT&类型。 C#调用这个OCX,传递了一个非托管内存的指针 经过测试,OCX接收到这个参数之后,VARIANT&参数的vt的值...
  • 有个麻烦的事情就是_variant_t变量的使用
  • 火眼识破隐藏的Variant变量 如果没有用As语句声明变量,默认类型就是Variants,比如: Dim name ' this is a variant 或者,当前模块下没有声明Option Explicit语句...
  • VARIANT variant_inp; COleSafeArray safearray_inp; variant_inp=m_CMscomm.get_Input(); safearray_inp=variant_inp; //转换后发现程序崩溃 , 在初始化的时候加入 m_ctrlComm.SetInputMode(1); ...
  • 使用VARIANT传递数组的方法及步骤

    千次阅读 2014-02-14 09:49:16
    在使用COM/DCOM写组件时经常要传递数组,...经过查找资料发现使用VARIANT变量可以传递任何类型的数组,随将使用VARIANT数组的方法总结一下。其实在VARIANT传递数组的方法非常简单,只要理解SAFEARRAY数组的使用方法即可
  • delphi 定义变量同时赋值初始值

    千次阅读 2019-02-15 11:31:52
    只有全局变量才能在定义的时候赋初值,局部变量不可以! var Form1: TForm1; Present: TDateTime; year_ :string= '0'; //只有全局变量才能赋初值 month_ :string= '0'; day_ :string= '0'; hour_ :string= ...
  • CComVariant 变量直接赋值就好,不用.vt 和CComVariant 变量分开赋值。 例如: CComVariant addvalue; addvalue.vt = VT_BSTR; addvalue = CComBSTR(L"ADD_CODE_STRING_"); 应改为: addvalue = L"ADD_CODE_STRING...
  • vb6中判断一个变量值是否为空

    千次阅读 2020-09-17 14:08:31
    Null指一个不合法的数据,判断一个变量是否为Null使用isNull函数。 这种数据通常出现在三种情况下: (1)最简单的,函数直接返回Null给调用方。譬如 Function DivideEx(ByVal A as Double, ByVal B as Double) as ...
  • Variant 数据类型介绍

    千次阅读 2013-12-12 11:42:56
    Variant 数据类型是所有没被显式声明(用如 Dim、Private、Public 或 Static等语句)为其他类型变量的数据类型。Variant 数据类型并没有类型声明字符。 Variant 是一种特殊的数据类型,除了定长String数据及...
  • C++ VARIANT数据类型操作详解

    万次阅读 2016-05-05 17:55:47
    使用VARIANT来传递参数意味着非强类型语言(例如VBScript)能够调用使用强类型语言(C++)实现的方法。 VARIANT的结构可以参考头文件VC98\Include\OAIDL.H中关于结构体tagVARIANT的定义。 VARIANT 数据类型在文件OAIDL....
  • Unity | 预制体变量 Prefab Variant

    千次阅读 2020-06-04 23:25:52
    Prefab Variant 预制体变量 在创建 Prefab 时,会遇到下列窗口提示 Original Prefab 即建立新的原生预制体 如果需要在之前的 Prefab 上进行修改,例如给某个关卡的人物加上帽子等,可以使用预制体变量 Prefab ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,795
精华内容 13,518
关键字:

variant变量