none
获取命令行的字符转换问题 RRS feed

  • 问题

  •     LPWSTR *szArgList; 
       int argCount;
      
       
     szArgList = CommandLineToArgvW(GetCommandLineW(), &argCount); 

    TCHAR szBuf(100);
     
    strcpy(szBuf,(_bstr_t)szArgList[1]);             //这里不知道怎么转换
    2012年1月28日 5:51

答案

  • WCHAR szBuf[100];
     
    wcscpy(szBuf, szArgList[1]);  
    0xBAADF00D
    • 已标记为答案 Honny_yeyh 2012年1月29日 0:15
    2012年1月28日 13:06
    版主
  • LPWSTR *CommandLineToArgvW(     
        LPCWSTR lpCmdLine,
        int *pNumArgs
    );

    它返回的是LPWSTR,所以下面与它相关的操作都是宽字符串操作的那些函数

    wcscpy/swprintf...


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    • 已标记为答案 Honny_yeyh 2012年1月29日 0:15
    2012年1月28日 13:46
    版主

全部回复

  • 用wcscpy代替strcpy

    还有你那个buffer该用中括号


    0xBAADF00D
    2012年1月28日 8:50
    版主
  • error C2664: 'wcscpy' : cannot convert parameter 1 from 'char [100]' to 'unsigned short *'
    2012年1月28日 12:08
  • WCHAR szBuf[100];
     
    wcscpy(szBuf, szArgList[1]);  
    0xBAADF00D
    • 已标记为答案 Honny_yeyh 2012年1月29日 0:15
    2012年1月28日 13:06
    版主
  • LPWSTR *CommandLineToArgvW(     
        LPCWSTR lpCmdLine,
        int *pNumArgs
    );

    它返回的是LPWSTR,所以下面与它相关的操作都是宽字符串操作的那些函数

    wcscpy/swprintf...


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    • 已标记为答案 Honny_yeyh 2012年1月29日 0:15
    2012年1月28日 13:46
    版主
  • CommandLineToArgvW函数。这个函数只有Unicode宽字符版本,没有对应的CommandLineToArgvA函数。
    2012年1月29日 11:01