c++ char* 與LPCTSTR相互轉化


char ch[1024] = "wo shi ni baba";
    int num = MultiByteToWideChar(0, 0, ch, -1, NULL, 0);
    wchar_t *wide = new wchar_t[num];
    MultiByteToWideChar(0, 0, ch, -1, wide, num);
    //查看轉換好的結果
    cout << wide[3] << endl;

    
    //LPCTSTR 轉換成 char *
    wchar_t widestr[1024] = L"wo shi ni yeye";
    int num1 = WideCharToMultiByte(CP_OEMCP, NULL, widestr, -1, NULL, 0, NULL, FALSE);
    char *pchar = new char[num1];
    WideCharToMultiByte(CP_OEMCP, NULL, widestr, -1, pchar, num1, NULL, FALSE);
    //查看轉換好的結果
    cout << pchar[1] << endl;
LPCTSTR類型:
L表示long 指針 這是為了兼容Windows 3.1等16位操作系統遺留下來的,在win32中以及其他的32位操作系統中, long指針和near指針及far 修飾符都是為了兼容的作用。沒有實際意義。
P表示這是一個指針
C表示是一個常量
T表示在Win32環境中, 有一個_T宏
STR表示這個變量是一個字符串
LPCTSTR用來表示你的 字符是否使用UNICODE, 如果你的程序定義了UNICODE或者其他相關的宏,那么這個字符或者字符串將被作為UNICODE字符串,否則就是標准的ANSI字符串。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM