WCHAR* SChar2WChar(char* nome)
{
int i;
WCHAR* TmpName; TmpName=(WCHAR*) malloc ((strlen(nome)+2)*sizeof(WCHAR));
for (i=0;i<(signed)strlen(nome)+1; i++)
TmpName[i]=nome[i];
TmpName[i]=0;
return TmpName;
}

解决方案 »

  1.   

    大概是这个意思,如果这是你编的,记住malloc用完后要free啊。
      

  2.   

    TmpName=(WCHAR*) malloc ((strlen(nome)+2)*sizeof(WCHAR));怎么加2,不是加1嘛?就是一个空格的空间啊?
      

  3.   

    Intel平台:abc0 -> a0b0c00000,如果WCHAR就是w_char(或unsigned int)的话。
    Alpha平台:abc0 -> 0a0b0c0000。
    本函数分配的堆内存资源需要调用者负责释放。
      

  4.   

    按说,TmpName=(WCHAR*)malloc((strlen(nome)+1)*sizeof(WCHAR)足够,但注意后面的
    for (i=0;i<(signed)strlen(nome)+1; i++)
    也应该改为:
    for (i=0;i<(signed)strlen(nome); i++)
    这样一来,
    abc0 -> a0b0c000。

    abc0 -> 0a0b0c00。