typedef struct tagMYTREENODE{
HTREEITEM hItem;
BOOL IsGroup;
int level;
int status;
int integral;
int order;
int sex;
int type;
int headimage;
TCHAR title[50];
TCHAR id[33];
TCHAR uname[50];
TCHAR eid[33];
TCHAR userid[33];
TCHAR mobile[21];
TCHAR groupname[50];
TCHAR enterprises[50];
TCHAR self_uw[100];
} MYTREENODE,*PMYTREENODE;PMYTREENODE pdata;
CString level;
level.Format("%s",pdata->integral);
报错是:error C2664: 'void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...)' : cannot convert parameter 1 from 'const char [3]' to 'const wchar_t *'
错哪了? 大虾们

解决方案 »

  1.   

    level.Format("%s",pdata->integral); 
    改为
    level.Format("%i",pdata->integral); 
      

  2.   

    level.Format("%d",pdata->integral); 
    这样呢?
      

  3.   

    PMYTREENODE pdata; 
    CString level; 
    level.Format("%d",pdata->integral); 
      

  4.   


    依旧报错  :
    error C2664: 'void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...)' : cannot convert parameter 1 from 'const char [3]' to 'const wchar_t *'format 的第一个参数是指第二个参数的输出格式?   我一直认为是要转换成的类型的数据的输出格式呢
      

  5.   

    level.Format("%d",pdata->integral);
    改为:
    level.Format(L"%d",pdata->integral);
      

  6.   

    level.Format("%d",pdata->integral); 
    pdata要先初始化吧。
      

  7.   


    不一定要先初始化,系统会帮你初始化为一个随机值,这个没关系,最多是一个warning,不会导致编译错误...
      

  8.   

    level.Format(L"%d",pdata->integral);
      

  9.   

    是么 系统怎么帮你初始话 你定义的是一个指针 而并非一个对象
    指针是野指针 指到那系统也不知道的
    这样试试typedef struct tagMYTREENODE{ 
    HTREEITEM hItem; 
    BOOL IsGroup; 
    int level; 
    int status; 
    int integral; 
    int order; 
    int sex; 
    int type; 
    int headimage; 
    TCHAR title[50]; 
    TCHAR id[33]; 
    TCHAR uname[50]; 
    TCHAR eid[33]; 
    TCHAR userid[33]; 
    TCHAR mobile[21]; 
    TCHAR groupname[50]; 
    TCHAR enterprises[50]; 
    TCHAR self_uw[100]; 
    } MYTREENODE,*PMYTREENODE; 

    MYTREENODE data;
    PMYTREENODE pdata = &data;
    pdata->integral = 5;
    CString level; 
    level.Format("%i",pdata->integral); 
      

  10.   


    他报的是这个错呀:
    error C2664: 'void ATL::CStringT <BaseType,StringTraits>::Format(const wchar_t *,...)' : cannot convert parameter 1 from 'const char [3]' to 'const wchar_t *' 
      

  11.   

    level.Format(_T("%d"),pdata->integral);
    那应该是这个了
      

  12.   

    它和
    level.Format(L("%d"),pdata->integral);
    有何区别啊,我一直都是用“L”
      

  13.   

    _T会根据工程自动转换为char或WHCAR
    L就是WCHAR