_variant_t PriCode_db;    PriCode_db=pParentDlg->m_pRecordset->GetCollect("FieldName");
    if(PriCode_db.vt != VT_NULL)
    {
     //在这里如何将这个PriCode_db转换为类型DWORD64的变量?直接强制转换不行
    }    其中字段FieldName在SQLServer数据库中的类型是bigint.

解决方案 »

  1.   

    DWORD64 i64 = PriCode_db;
      

  2.   

    To pomelowu(羽战士) :这样不行啊,错误代码:
    error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class _variant_t' (or there is no acceptable conversion)
      

  3.   

    哦?你是在什么编译器下?VS2005中没问题。试试看
    __int64 i64 = PriCode_db;
    呢。
      

  4.   

    还是不行,编译器是VC6 SP6
      

  5.   

    那就转为int,然后在转换为DWORD64 吧。可能老的sdk不支持直接转换为DWORD64
      

  6.   

    这个数是8字节的,转为int前4个字节的数据不就丢失了吗?
      

  7.   

    你先看看在你的编译器下VARIANT 是怎么定义的?