_variant_t s
1,我要让他变成string,或int。还有反过来怎么做?
#include<iostream.h>
#include<string.h>
#include <stdio.h>
void main()
{
   _variant_t s; 
   s = "asdfafds"; 
   char * aa="123";
   int bb=aa;
   cout<<s<<endl;
   cout<<bb<<endl;
}
-----------------
error C2065: '_variant_t' : undeclared identifier2,在使用_variant_t类型前要引入什么类吗?

解决方案 »

  1.   

    char *buffer = _com_util::ConvertBSTRToString((_bstr_t)va);
      

  2.   

    _variant_t s(123, VT_I4);
    int i = (int)(long)s;_variant_t str("asdfafds");
    char* pstr = (char*)str;
      

  3.   

    2. #include <comdef.h>
      

  4.   

    switch (var.vt)
    {
    case VT_BOOL:
    value = var.boolVal;
    break;
    case VT_UI1:
    case VT_I1:
    value = var.bVal;
    break;
    case VT_I2:
    case VT_UI2:
    value = var.iVal;
    break;
    case VT_NULL:
    case VT_EMPTY:
    value = 0;
    break;
    default:
    TRACE(_T("Warning: 未处理的 _variant_t 类型值; 文件: %s; 行: %d\n"), __FILE__, __LINE__);
    }
    return value;
      

  5.   

    #include<iostream.h>
    #include<string.h>
    #include <stdio.h>
    #include <comdef.h>void main(){
    _variant_t s(123, VT_I4);
    int i = (int)(long)s;}
      

  6.   

    #include<iostream.h>
    #include<string.h>
    #include <stdio.h>
    #include <comdef.h>void main(){
    _variant_t s(123, VT_I4);
    int i = (int)(long)s;}error C2668: '_variant_t::_variant_t' : ambiguous call to overloaded function
    Error executing cl.exe.
      

  7.   

    #include<iostream.h>
    #include<string.h>
    #include <stdio.h>
    #include <comdef.h>void main(){
      _variant_t s(123, VT_I4);
      int i = (int)(long)s;}
    error C2668: '_variant_t::_variant_t' : ambiguous call to overloaded function
    Error executing cl.exe.
      

  8.   

    _variant_t s(123, VT_I4)这句话有错,对重载函数的调用不明确。应该这样写:
    long t=123;
    _variant_t s(t,VT_I4);