Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 了解C样式字符串和CString上的字符串转换宏和字符串类型转换_C++_Unicode_Casting_C Strings_Ostringstream - Fatal编程技术网

C++ 了解C样式字符串和CString上的字符串转换宏和字符串类型转换

C++ 了解C样式字符串和CString上的字符串转换宏和字符串类型转换,c++,unicode,casting,c-strings,ostringstream,C++,Unicode,Casting,C Strings,Ostringstream,我目前在Visual Studio的MFC应用程序部门工作。我主要使用字符串来记录和调试,它可能包含中文字符。所以默认情况下我总是使用Unicode字符集。而输出例程,无论是输出窗口还是文本文件,通常都围绕C风格的字符串、CString和ostringsteam展开。虽然我读过unicode编码,也知道unicode或_unicode标识符是如何工作的。对于C风格的字符串和CString是如何存储、转换和输出的,我仍然很困惑 初始问题 注:“请按任意键继续. . ." 中文为“按任意键继续…”

我目前在Visual Studio的MFC应用程序部门工作。我主要使用字符串来记录和调试,它可能包含中文字符。所以默认情况下我总是使用Unicode字符集。而输出例程,无论是输出窗口还是文本文件,通常都围绕C风格的字符串、CString和ostringsteam展开。虽然我读过unicode编码,也知道unicode或_unicode标识符是如何工作的。对于C风格的字符串和CString是如何存储、转换和输出的,我仍然很困惑

初始问题 注:“请按任意键继续. . ." 中文为“按任意键继续…”

我从结果中得出以下假设和问题:

假设:

  • 如果cout无法识别C样式字符串的类型,它将输出地址(案例1),否则,它将尝试解码并输出字符串字符(案例6)
  • 如果字符串转换宏的目标类型与 源类型,则返回原始地址(情况9);否则 它返回新分配内存的地址(情况8)
  • 根据假设1和假设2,情况17中的乱码字符 可以解释为:因为cout识别LPSTR,所以它试图 输出字符串,CT2A返回新 已使用temp CT2A对象销毁的已分配内存, 结果就是这样
  • 在“sizeof”的输出大于4的所有情况下 表示转换宏类类型的大小
  • 注意:这些假设可能都错了。我列出它们是为了显示我目前的理解水平,希望你们能帮助我纠正我的误解

    问题:

  • 在案例27 28 31 32 33 34中,如何成功创建ANSI字符串 表示宽字符串?(这与问题相同) (第一个问题)
  • 对于“(LPSTR)myStr”,cout的输出是“H”,cout是否将“o”的第一个字节0x00视为空字符?为什么不在“H”的第一个字节处停止
  • 在wcout部分,虽然“myStr”或“myCString”被转换为ANSI字符串,但为什么wcout仍然能够输出正确的字符串?它不是只识别宽字符串吗
  • 在案例52 53 68 73 74中,基于我的假设1,为什么wcout不能识别宽字符串,而只是输出地址
  • 我注释掉了case 65 67 86 88,因为每次程序运行到这些行时,它都会生成一个空输出,并跳过其余的行

    65. LPWSTR = CT2W(myStr):    请按任意键继续. . .
    
  • 实际上,我用“myStr”指定的一个中文字符串进行测试

    LPCWSTR myStr = _T("你好吗?");//How are you?
    
  • “的输出”你好吗“显示了与“你好吗?”相似的结果,除了案例45 46 47 58 59 60 65 66 67 70 79 81 86 87 88显示了问题5中描述的行为。为什么

    我知道这篇文章可能包含很多问题,但我认为它们都是相关的,也许一两个基本概念可以解决我所有的问题。

    LPCWSTR myStr = _T("How are you?");
    CString myCStr = myStr;
    
    LPCWSTR myLPCWSTR0 = myStr;
    LPSTR myLPSTR1 = CT2A(myStr);
    LPSTR myLPSTR1_1 = CT2CA(myStr);
    LPCSTR myLPCSTR1 = CT2CA(myStr);
    LPCSTR myLPCSTR1_1 = CT2A(myStr);
    LPWSTR myLPWSTR1 = CT2W(myStr);
    LPCWSTR myLPCWSTR1 = CT2CW(myStr);
    LPCWSTR myLPCWSTR1_1 = CT2W(myStr);
    
    LPCWSTR myLPCWSTR2 = myCStr;
    LPSTR myLPSTR3 = CT2A(myCStr);
    LPSTR myLPSTR3_1 = CT2CA(myCStr);
    LPCSTR myLPCSTR3 = CT2CA(myCStr);
    LPCSTR myLPCSTR3_1 = CT2A(myCStr);
    LPWSTR myLPWSTR3 = CT2W(myCStr);
    LPCWSTR myLPCWSTR3 = CT2CW(myCStr);
    LPCWSTR myLPCWSTR3_1 = CT2W(myCStr);
    
    std::cout << endl << "*********Following is cout:********" << endl;
    std::cout << "1.  "<< "myStr:                   " << myStr           << "   wcslen: " << wcslen(myStr)          << "   sizeof: " << sizeof(myStr)          << endl;
    std::cout << "2.  "<< "(LPCWSTR)myStr:          " << (LPCWSTR)myStr  << "   wcslen: " << wcslen((LPCWSTR)myStr) << "   sizeof: " << sizeof((LPCWSTR)myStr) << endl;
    std::cout << "3.  "<< "LPCWSTR  = myStr:        " << myLPCWSTR0      << "   wcslen: " << wcslen(myLPCWSTR0)     << "   sizeof: " << sizeof(myLPCWSTR0)     << endl;
    std::cout << "4.  "<< "(LPSTR)myStr:            " << (LPSTR)myStr    << "   strlen: " << strlen((LPSTR)myStr)   << "   sizeof: " << sizeof((LPSTR)myStr)   << endl;
    std::cout << "5.  "<< "(LPCSTR)myStr:           " << (LPCSTR)myStr   << "   strlen: " << strlen((LPCSTR)myStr)  << "   sizeof: " << sizeof((LPCSTR)myStr)  << endl;
    std::cout << endl;
    std::cout << "6.  "<< "CT2CA(myStr):            " << CT2CA(myStr)    << "   strlen: " << strlen(CT2CA(myStr))   << "   sizeof: " << sizeof(CT2CA(myStr)) << endl;
    std::cout << "7.  "<< "CT2A(myStr):             " << CT2A(myStr)     << "   strlen: " << strlen(CT2A(myStr))    << "   sizeof: " << sizeof(CT2A(myStr))  << endl;
    std::cout << "8.  "<< "CT2W(myStr):             " << CT2W(myStr)     << "   wcslen: " << wcslen(CT2W(myStr))    << "   sizeof: " << sizeof(CT2W(myStr))  << endl;
    std::cout << "9.  "<< "CT2CW(myStr):            " << CT2CW(myStr)    << "   wcslen: " << wcslen(CT2CW(myStr))   << "   sizeof: " << sizeof(CT2CW(myStr)) << endl;
    std::cout << endl;
    std::cout << "10. "<< "(LPSTR)CT2A(myStr):      " << (LPSTR)CT2A(myStr)    << "   strlen: " << strlen((LPSTR)CT2A(myStr))    << "   sizeof: " << sizeof((LPSTR)CT2A(myStr))    << endl;
    std::cout << "11. "<< "(LPSTR)CT2CA(myStr):     " << (LPSTR)CT2CA(myStr)   << "   strlen: " << strlen((LPSTR)CT2CA(myStr))   << "   sizeof: " << sizeof((LPSTR)CT2CA(myStr))   << endl;
    std::cout << "12. "<< "(LPCSTR)CT2CA(myStr):    " << (LPCSTR)CT2CA(myStr)  << "   strlen: " << strlen((LPCSTR)CT2CA(myStr))  << "   sizeof: " << sizeof((LPCSTR)CT2CA(myStr))  << endl;
    std::cout << "13. "<< "(LPCSTR)CT2A(myStr):     " << (LPCSTR)CT2A(myStr)   << "   strlen: " << strlen((LPCSTR)CT2A(myStr))   << "   sizeof: " << sizeof((LPCSTR)CT2A(myStr))   << endl;
    std::cout << "14. "<< "(LPWSTR)CT2W(myStr):     " << (LPWSTR)CT2W(myStr)   << "   wcslen: " << wcslen((LPWSTR)CT2W(myStr))   << "   sizeof: " << sizeof((LPWSTR)CT2W(myStr))   << endl;
    std::cout << "15. "<< "(LPCWSTR)CT2CW(myStr):   " << (LPCWSTR)CT2CW(myStr) << "   wcslen: " << wcslen((LPCWSTR)CT2CW(myStr)) << "   sizeof: " << sizeof((LPCWSTR)CT2CW(myStr)) << endl;
    std::cout << "16. "<< "(LPCWSTR)CT2W(myStr):    " << (LPCWSTR)CT2W(myStr)  << "   wcslen: " << wcslen((LPCWSTR)CT2W(myStr))  << "   sizeof: " << sizeof((LPCWSTR)CT2W(myStr))  << endl;
    std::cout << endl;
    std::cout << "17. "<< "LPSTR  = CT2A(myStr):    " << myLPSTR1     << "   strlen: " << strlen(myLPSTR1)     << "   sizeof: " << sizeof(myLPSTR1)     << endl;
    std::cout << "18. "<< "LPSTR  = CT2CA(myStr):   " << myLPSTR1_1   << "   strlen: " << strlen(myLPSTR1_1)   << "   sizeof: " << sizeof(myLPSTR1_1)   << endl;
    std::cout << "19. "<< "LPCSTR = CT2CA(myStr):   " << myLPCSTR1    << "   strlen: " << strlen(myLPCSTR1)    << "   sizeof: " << sizeof(myLPCSTR1)    << endl;
    std::cout << "20. "<< "LPCSTR = CT2A(myStr):    " << myLPCSTR1_1  << "   strlen: " << strlen(myLPCSTR1_1)  << "   sizeof: " << sizeof(myLPCSTR1_1)  << endl;
    std::cout << "21. "<< "LPWSTR = CT2W(myStr):    " << myLPWSTR1    << "   wcslen: " << wcslen(myLPWSTR1)    << "   sizeof: " << sizeof(myLPWSTR1)    << endl;
    std::cout << "22. "<< "LPCWSTR = CT2CW(myStr):  " << myLPCWSTR1   << "   wcslen: " << wcslen(myLPCWSTR1)   << "   sizeof: " << sizeof(myLPCWSTR1)   << endl;
    std::cout << "23. "<< "LPCWSTR = CTCW(myStr):   " << myLPCWSTR1_1 << "   wcslen: " << wcslen(myLPCWSTR1_1) << "   sizeof: " << sizeof(myLPCWSTR1_1) << endl;
    std::cout << endl;
    std::cout << endl;
    std::cout << "24. "<< "myCStr:                  " << myCStr          << "   wcslen: " << wcslen(myCStr)          << "   sizeof: " << sizeof(myCStr)          << endl;
    std::cout << "25. "<< "(LPCWSTR)myCStr:         " << (LPCWSTR)myCStr << "   wcslen: " << wcslen((LPCWSTR)myCStr) << "   sizeof: " << sizeof((LPCWSTR)myCStr) << endl;
    std::cout << "26. "<< "LPCWSTR = myCStr:        " << myLPCWSTR2      << "   wcslen: " << wcslen(myLPCWSTR1)      << "   sizeof: " << sizeof(myLPCWSTR1)      << endl;
    std::cout << endl;
    std::cout << "27. "<< "CT2A(myCStr):            " << CT2A(myCStr)    << "   strlen: " << strlen(CT2A(myCStr))    << "   sizeof: " << sizeof(CT2A(myCStr))  << endl;
    std::cout << "28. "<< "CT2CA(myCStr):           " << CT2CA(myCStr)   << "   strlen: " << strlen(CT2CA(myCStr))   << "   sizeof: " << sizeof(CT2CA(myCStr)) << endl;
    std::cout << "29. "<< "CT2W(myCStr):            " << CT2W(myCStr)    << "   strlen: " << wcslen(CT2W(myCStr))    << "   sizeof: " << sizeof(CT2W(myCStr))  << endl;
    std::cout << "30. "<< "CT2CW(myCStr):           " << CT2CW(myCStr)   << "   strlen: " << wcslen(CT2CW(myCStr))   << "   sizeof: " << sizeof(CT2CW(myCStr)) << endl;
    std::cout << endl;
    std::cout << "31. "<< "(LPSTR)CT2CA(myCStr):    " << (LPSTR)CT2A(myCStr)    << "   strlen: " << strlen((LPSTR)CT2A(myCStr))    << "   sizeof: " << sizeof((LPSTR)CT2A(myCStr))    << endl;
    std::cout << "32. "<< "(LPSTR)CT2CA(myCStr):    " << (LPSTR)CT2A(myCStr)    << "   strlen: " << strlen((LPSTR)CT2A(myCStr))    << "   sizeof: " << sizeof((LPSTR)CT2A(myCStr))    << endl;
    std::cout << "33. "<< "(LPCSTR)CT2CA(myCStr):   " << (LPCSTR)CT2CA(myCStr)  << "   strlen: " << strlen((LPCSTR)CT2CA(myCStr))  << "   sizeof: " << sizeof((LPCSTR)CT2CA(myCStr))  << endl;
    std::cout << "34. "<< "(LPCSTR)CT2CA(myCStr):   " << (LPCSTR)CT2CA(myCStr)  << "   strlen: " << strlen((LPCSTR)CT2CA(myCStr))  << "   sizeof: " << sizeof((LPCSTR)CT2CA(myCStr))  << endl;
    std::cout << "35. "<< "(LPWSTR)CT2W(myCStr):    " << (LPWSTR)CT2W(myCStr)   << "   wcslen: " << wcslen((LPWSTR)CT2W(myCStr))   << "   sizeof: " << sizeof((LPWSTR)CT2W(myCStr))   << endl;
    std::cout << "36. "<< "(LPCWSTR)CT2CW(myCStr):  " << (LPCWSTR)CT2CW(myCStr) << "   wcslen: " << wcslen((LPCWSTR)CT2CW(myCStr)) << "   sizeof: " << sizeof((LPCWSTR)CT2CW(myCStr)) << endl;
    std::cout << "37. "<< "(LPCWSTR)CT2W(myCStr):   " << (LPCWSTR)CT2W(myCStr)  << "   wcslen: " << wcslen((LPCWSTR)CT2W(myCStr))  << "   sizeof: " << sizeof((LPCWSTR)CT2W(myCStr))  << endl;
    std::cout << "38. "<< "LPSTR = CT2A(myCStr):    " << myLPSTR3     << "   strlen: " << strlen(myLPCSTR3)    << "   sizeof: " << sizeof(myLPCSTR3)    << endl;
    std::cout << "39. "<< "LPSTR = CT2CA(myCStr):   " << myLPSTR3_1   << "   strlen: " << strlen(myLPCSTR3_1)  << "   sizeof: " << sizeof(myLPCSTR3_1)  << endl;
    std::cout << "40. "<< "LPCSTR = CT2CA(myCStr):  " << myLPCSTR3    << "   strlen: " << strlen(myLPCSTR3)    << "   sizeof: " << sizeof(myLPCSTR3)    << endl;
    std::cout << "41. "<< "LPCSTR = CT2A(myCStr):   " << myLPCSTR3_1  << "   strlen: " << strlen(myLPCSTR3_1)  << "   sizeof: " << sizeof(myLPCSTR3_1)  << endl;
    std::cout << "42. "<< "LPWSTR = CT2W(myCStr):   " << myLPWSTR3    << "   wcslen: " << wcslen(myLPCWSTR3)   << "   sizeof: " << sizeof(myLPCWSTR3)   << endl;
    std::cout << "43. "<< "LPCWSTR = CT2CW(myCStr): " << myLPCWSTR3   << "   wcslen: " << wcslen(myLPCWSTR3)   << "   sizeof: " << sizeof(myLPCWSTR3)   << endl;
    std::cout << "44. "<< "LPCWSTR = CT2W(myCStr):  " << myLPCWSTR3_1 << "   wcslen: " << wcslen(myLPCWSTR3_1) << "   sizeof: " << sizeof(myLPCWSTR3_1) << endl;
    
    std::wcout << endl << "*********Following is wcout:********" << endl;
    std::wcout << "45. "<< "myStr:                   " << myStr           << "   wcslen: " << wcslen(myStr)          << "   sizeof: " << sizeof(myStr)          << endl;
    std::wcout << "46. "<< "(LPCWSTR)myStr:          " << (LPCWSTR)myStr  << "   wcslen: " << wcslen((LPCWSTR)myStr) << "   sizeof: " << sizeof((LPCWSTR)myStr) << endl;
    std::wcout << "47. "<< "LPCWSTR  = myStr:        " << myLPCWSTR0      << "   wcslen: " << wcslen(myLPCWSTR0)     << "   sizeof: " << sizeof(myLPCWSTR0)     << endl;
    std::wcout << "48. "<< "(LPSTR)myStr:            " << (LPSTR)myStr    << "   strlen: " << strlen((LPSTR)myStr)   << "   sizeof: " << sizeof((LPSTR)myStr)   << endl;
    std::wcout << "49. "<< "(LPCSTR)myStr:           " << (LPCSTR)myStr   << "   strlen: " << strlen((LPCSTR)myStr)  << "   sizeof: " << sizeof((LPCSTR)myStr)  << endl;
    std::wcout << endl;
    std::wcout << "50. "<< "CT2CA(myStr):            " << CT2CA(myStr)    << "   strlen: " << strlen(CT2CA(myStr))   << "   sizeof: " << sizeof(CT2CA(myStr)) << endl;
    std::wcout << "51. "<< "CT2A(myStr):             " << CT2A(myStr)     << "   strlen: " << strlen(CT2A(myStr))    << "   sizeof: " << sizeof(CT2A(myStr))  << endl;
    std::wcout << "52. "<< "CT2W(myStr):             " << CT2W(myStr)     << "   wcslen: " << wcslen(CT2W(myStr))    << "   sizeof: " << sizeof(CT2W(myStr))  << endl;
    std::wcout << "53. "<< "CT2CW(myStr):            " << CT2CW(myStr)    << "   wcslen: " << wcslen(CT2CW(myStr))   << "   sizeof: " << sizeof(CT2CW(myStr)) << endl;
    std::wcout << endl;
    std::wcout << "54. "<< "(LPSTR)CT2A(myStr):      " << (LPSTR)CT2A(myStr)    << "   strlen: " << strlen((LPSTR)CT2A(myStr))    << "   sizeof: " << sizeof((LPSTR)CT2A(myStr))    << endl;
    std::wcout << "55. "<< "(LPSTR)CT2CA(myStr):     " << (LPSTR)CT2CA(myStr)   << "   strlen: " << strlen((LPSTR)CT2CA(myStr))   << "   sizeof: " << sizeof((LPSTR)CT2CA(myStr))   << endl;
    std::wcout << "56. "<< "(LPCSTR)CT2CA(myStr):    " << (LPCSTR)CT2CA(myStr)  << "   strlen: " << strlen((LPCSTR)CT2CA(myStr))  << "   sizeof: " << sizeof((LPCSTR)CT2CA(myStr))  << endl;
    std::wcout << "57. "<< "(LPCSTR)CT2A(myStr):     " << (LPCSTR)CT2A(myStr)   << "   strlen: " << strlen((LPCSTR)CT2A(myStr))   << "   sizeof: " << sizeof((LPCSTR)CT2A(myStr))   << endl;
    std::wcout << "58. "<< "(LPWSTR)CT2W(myStr):     " << (LPWSTR)CT2W(myStr)   << "   wcslen: " << wcslen((LPWSTR)CT2W(myStr))   << "   sizeof: " << sizeof((LPWSTR)CT2W(myStr))   << endl;
    std::wcout << "59. "<< "(LPCWSTR)CT2CW(myStr):   " << (LPCWSTR)CT2CW(myStr) << "   wcslen: " << wcslen((LPCWSTR)CT2CW(myStr)) << "   sizeof: " << sizeof((LPCWSTR)CT2CW(myStr)) << endl;
    std::wcout << "60. "<< "(LPCWSTR)CT2W(myStr):    " << (LPCWSTR)CT2W(myStr)  << "   wcslen: " << wcslen((LPCWSTR)CT2W(myStr))  << "   sizeof: " << sizeof((LPCWSTR)CT2W(myStr))  << endl;
    std::wcout << endl;
    std::wcout << "61. "<< "LPSTR  = CT2A(myStr):    " << myLPSTR1     << "   strlen: " << strlen(myLPSTR1)     << "   sizeof: " << sizeof(myLPSTR1)     << endl;
    std::wcout << "62. "<< "LPSTR  = CT2CA(myStr):   " << myLPSTR1_1   << "   strlen: " << strlen(myLPSTR1_1)   << "   sizeof: " << sizeof(myLPSTR1_1)   << endl;
    std::wcout << "63. "<< "LPCSTR = CT2CA(myStr):   " << myLPCSTR1    << "   strlen: " << strlen(myLPCSTR1)    << "   sizeof: " << sizeof(myLPCSTR1)    << endl;
    std::wcout << "64. "<< "LPCSTR = CT2A(myStr):    " << myLPCSTR1_1  << "   strlen: " << strlen(myLPCSTR1_1)  << "   sizeof: " << sizeof(myLPCSTR1_1)  << endl;
    /*std::wcout << "65. "<< "LPWSTR = CT2W(myStr):    " << myLPWSTR1    << "   wcslen: " << wcslen(myLPWSTR1)    << "   sizeof: " << sizeof(myLPWSTR1)    << endl;*/
    std::wcout << "66. "<< "LPCWSTR = CT2CW(myStr):  " << myLPCWSTR1   << "   wcslen: " << wcslen(myLPCWSTR1)   << "   sizeof: " << sizeof(myLPCWSTR1)   << endl;
    /*std::wcout << "67. "<< "LPCWSTR = CTCW(myStr):   " << myLPCWSTR1_1 << "   wcslen: " << wcslen(myLPCWSTR1_1) << "   sizeof: " << sizeof(myLPCWSTR1_1) << endl;*/
    std::wcout << endl;
    std::wcout << endl;
    std::wcout << "68. "<< "myCStr:                  " << myCStr          << "   wcslen: " << wcslen(myCStr)          << "   sizeof: " << sizeof(myCStr)          << endl;
    std::wcout << "69. "<< "(LPCWSTR)myCStr:         " << (LPCWSTR)myCStr << "   wcslen: " << wcslen((LPCWSTR)myCStr) << "   sizeof: " << sizeof((LPCWSTR)myCStr) << endl;
    std::wcout << "70. "<< "LPCWSTR = myCStr:        " << myLPCWSTR2      << "   wcslen: " << wcslen(myLPCWSTR1)      << "   sizeof: " << sizeof(myLPCWSTR1)      << endl;
    std::wcout << endl;
    std::wcout << "71. "<< "CT2A(myCStr):            " << CT2A(myCStr)    << "   strlen: " << strlen(CT2A(myCStr))    << "   sizeof: " << sizeof(CT2A(myCStr))  << endl;
    std::wcout << "72. "<< "CT2CA(myCStr):           " << CT2CA(myCStr)   << "   strlen: " << strlen(CT2CA(myCStr))   << "   sizeof: " << sizeof(CT2CA(myCStr)) << endl;
    std::wcout << "73. "<< "CT2W(myCStr):            " << CT2W(myCStr)    << "   strlen: " << wcslen(CT2W(myCStr))    << "   sizeof: " << sizeof(CT2W(myCStr))  << endl;
    std::wcout << "74. "<< "CT2CW(myCStr):           " << CT2CW(myCStr)   << "   strlen: " << wcslen(CT2CW(myCStr))   << "   sizeof: " << sizeof(CT2CW(myCStr)) << endl;
    std::wcout << endl;
    std::wcout << "75. "<< "(LPSTR)CT2CA(myCStr):    " << (LPSTR)CT2A(myCStr)    << "   strlen: " << strlen((LPSTR)CT2A(myCStr))    << "   sizeof: " << sizeof((LPSTR)CT2A(myCStr))    << endl;
    std::wcout << "76. "<< "(LPSTR)CT2CA(myCStr):    " << (LPSTR)CT2A(myCStr)    << "   strlen: " << strlen((LPSTR)CT2A(myCStr))    << "   sizeof: " << sizeof((LPSTR)CT2A(myCStr))    << endl;
    std::wcout << "77. "<< "(LPCSTR)CT2CA(myCStr):   " << (LPCSTR)CT2CA(myCStr)  << "   strlen: " << strlen((LPCSTR)CT2CA(myCStr))  << "   sizeof: " << sizeof((LPCSTR)CT2CA(myCStr))  << endl;
    std::wcout << "78. "<< "(LPCSTR)CT2CA(myCStr):   " << (LPCSTR)CT2CA(myCStr)  << "   strlen: " << strlen((LPCSTR)CT2CA(myCStr))  << "   sizeof: " << sizeof((LPCSTR)CT2CA(myCStr))  << endl;
    std::wcout << "79. "<< "(LPWSTR)CT2W(myCStr):    " << (LPWSTR)CT2W(myCStr)   << "   wcslen: " << wcslen((LPWSTR)CT2W(myCStr))   << "   sizeof: " << sizeof((LPWSTR)CT2W(myCStr))   << endl;
    std::wcout << "80. "<< "(LPCWSTR)CT2CW(myCStr):  " << (LPCWSTR)CT2CW(myCStr) << "   wcslen: " << wcslen((LPCWSTR)CT2CW(myCStr)) << "   sizeof: " << sizeof((LPCWSTR)CT2CW(myCStr)) << endl;
    std::wcout << "81. "<< "(LPCWSTR)CT2W(myCStr):   " << (LPCWSTR)CT2W(myCStr)  << "   wcslen: " << wcslen((LPCWSTR)CT2W(myCStr))  << "   sizeof: " << sizeof((LPCWSTR)CT2W(myCStr))  << endl;
    std::wcout << "82. "<< "LPSTR = CT2A(myCStr):    " << myLPSTR3     << "   strlen: " << strlen(myLPCSTR3)    << "   sizeof: " << sizeof(myLPCSTR3)    << endl;
    std::wcout << "83. "<< "LPSTR = CT2CA(myCStr):   " << myLPSTR3_1   << "   strlen: " << strlen(myLPCSTR3_1)  << "   sizeof: " << sizeof(myLPCSTR3_1)  << endl;
    std::wcout << "84. "<< "LPCSTR = CT2CA(myCStr):  " << myLPCSTR3    << "   strlen: " << strlen(myLPCSTR3)    << "   sizeof: " << sizeof(myLPCSTR3)    << endl;
    std::wcout << "85. "<< "LPCSTR = CT2A(myCStr):   " << myLPCSTR3_1  << "   strlen: " << strlen(myLPCSTR3_1)  << "   sizeof: " << sizeof(myLPCSTR3_1)  << endl;
    /*std::wcout << "86. "<< "LPWSTR = CT2W(myCStr):   " << myLPWSTR3    << "   wcslen: " << wcslen(myLPCWSTR3)   << "   sizeof: " << sizeof(myLPCWSTR3)   << endl;*/
    std::wcout << "87. "<< "LPCWSTR = CT2CW(myCStr): " << myLPCWSTR3   << "   wcslen: " << wcslen(myLPCWSTR3)   << "   sizeof: " << sizeof(myLPCWSTR3)   << endl;
    /*std::wcout << "88. "<< "LPCWSTR = CT2W(myCStr):  " << myLPCWSTR3_1 << "   wcslen: " << wcslen(myLPCWSTR3_1) << "   sizeof: " << sizeof(myLPCWSTR3_1) << endl;*/
    
    *********Following is cout:********
    1.  myStr:                   0030ADDC   wcslen: 12   sizeof: 4
    2.  (LPCWSTR)myStr:          0030ADDC   wcslen: 12   sizeof: 4
    3.  LPCWSTR  = myStr:        0030ADDC   wcslen: 12   sizeof: 4
    4.  (LPSTR)myStr:            H   strlen: 1   sizeof: 4
    5.  (LPCSTR)myStr:           H   strlen: 1   sizeof: 4
    
    6.  CT2CA(myStr):            How are you?   strlen: 12   sizeof: 132
    7.  CT2A(myStr):             How are you?   strlen: 12   sizeof: 132
    8.  CT2W(myStr):             008FED28   wcslen: 12   sizeof: 260
    9.  CT2CW(myStr):            0030ADDC   wcslen: 12   sizeof: 4
    
    10. (LPSTR)CT2A(myStr):      How are you?   strlen: 12   sizeof: 4
    11. (LPSTR)CT2CA(myStr):     How are you?   strlen: 12   sizeof: 4
    12. (LPCSTR)CT2CA(myStr):    How are you?   strlen: 12   sizeof: 4
    13. (LPCSTR)CT2A(myStr):     How are you?   strlen: 12   sizeof: 4
    14. (LPWSTR)CT2W(myStr):     008FE698   wcslen: 12   sizeof: 4
    15. (LPCWSTR)CT2CW(myStr):   0030ADDC   wcslen: 12   sizeof: 4
    16. (LPCWSTR)CT2W(myStr):    008FE468   wcslen: 12   sizeof: 4
    
    17. LPSTR  = CT2A(myStr):    烫烫烫烫   strlen: 136   sizeof: 4
    18. LPSTR  = CT2CA(myStr):    烫烫烫烫€鴱   strlen: 139   sizeof: 4
    19. LPCSTR = CT2CA(myStr):    烫烫烫烫赭?  strlen: 139   sizeof: 4
    20. LPCSTR = CT2A(myStr):     烫烫烫烫h鲝   strlen: 139   sizeof: 4
    21. LPWSTR = CT2W(myStr):    008FF5D0   wcslen: 412   sizeof: 4
    22. LPCWSTR = CT2CW(myStr):  0030ADDC   wcslen: 12   sizeof: 4
    23. LPCWSTR = CTCW(myStr):   008FF4B8   wcslen: 552   sizeof: 4
    
    24. myCStr:                  00A30888   wcslen: 12   sizeof: 4
    25. (LPCWSTR)myCStr:         00A30888   wcslen: 12   sizeof: 4
    26. LPCWSTR = myCStr:        00A30888   wcslen: 12   sizeof: 4
    
    27. CT2A(myCStr):            How are you?   strlen: 12   sizeof: 132
    28. CT2CA(myCStr):           How are you?   strlen: 12   sizeof: 132
    29. CT2W(myCStr):            008FE020   strlen: 12   sizeof: 260
    30. CT2CW(myCStr):           00A30888   strlen: 12   sizeof: 4
    
    31. (LPSTR)CT2CA(myCStr):    How are you?   strlen: 12   sizeof: 4
    32. (LPSTR)CT2CA(myCStr):    How are you?   strlen: 12   sizeof: 4
    33. (LPCSTR)CT2CA(myCStr):   How are you?   strlen: 12   sizeof: 4
    34. (LPCSTR)CT2CA(myCStr):   How are you?   strlen: 12   sizeof: 4
    35. (LPWSTR)CT2W(myCStr):    008FD990   wcslen: 12   sizeof: 4
    36. (LPCWSTR)CT2CW(myCStr):  00A30888   wcslen: 12   sizeof: 4
    37. (LPCWSTR)CT2W(myCStr):   008FD760   wcslen: 12   sizeof: 4
    38. LPSTR = CT2A(myCStr):     烫烫烫烫隔?  strlen: 139   sizeof: 4
    39. LPSTR = CT2CA(myCStr):    烫烫烫烫,魪   strlen: 139   sizeof: 4
    40. LPCSTR = CT2CA(myCStr):   烫烫烫烫狊?  strlen: 139   sizeof: 4
    41. LPCSTR = CT2A(myCStr):    烫烫烫烫髲   strlen: 139   sizeof: 4
    42. LPWSTR = CT2W(myCStr):   008FF17C   wcslen: 12   sizeof: 4
    43. LPCWSTR = CT2CW(myCStr): 00A30888   wcslen: 12   sizeof: 4
    44. LPCWSTR = CT2W(myCStr):  008FF064   wcslen: 1106   sizeof: 4
    
    *********Following is wcout:********
    45. myStr:                   How are you?   wcslen: 12   sizeof: 4
    46. (LPCWSTR)myStr:          How are you?   wcslen: 12   sizeof: 4
    47. LPCWSTR  = myStr:        How are you?   wcslen: 12   sizeof: 4
    48. (LPSTR)myStr:            H   strlen: 1   sizeof: 4
    49. (LPCSTR)myStr:           H   strlen: 1   sizeof: 4
    
    50. CT2CA(myStr):            How are you?   strlen: 12   sizeof: 132
    51. CT2A(myStr):             How are you?   strlen: 12   sizeof: 132
    52. CT2W(myStr):             008FD318   wcslen: 12   sizeof: 260
    53. CT2CW(myStr):            0030ADDC   wcslen: 12   sizeof: 4
    
    54. (LPSTR)CT2A(myStr):      How are you?   strlen: 12   sizeof: 4
    55. (LPSTR)CT2CA(myStr):     How are you?   strlen: 12   sizeof: 4
    56. (LPCSTR)CT2CA(myStr):    How are you?   strlen: 12   sizeof: 4
    57. (LPCSTR)CT2A(myStr):     How are you?   strlen: 12   sizeof: 4
    58. (LPWSTR)CT2W(myStr):     How are you?   wcslen: 12   sizeof: 4
    59. (LPCWSTR)CT2CW(myStr):   How are you?   wcslen: 12   sizeof: 4
    60. (LPCWSTR)CT2W(myStr):    How are you?   wcslen: 12   sizeof: 4
    
    61. LPSTR  = CT2A(myStr):     烫烫烫烫   strlen: 136   sizeof: 4
    62. LPSTR  = CT2CA(myStr):    烫烫烫烫€鴱   strlen: 139   sizeof: 4
    63. LPCSTR = CT2CA(myStr):    烫烫烫烫赭?  strlen: 139   sizeof: 4
    64. LPCSTR = CT2A(myStr):     烫烫烫烫h鲝   strlen: 139   sizeof: 4
    66. LPCWSTR = CT2CW(myStr):  How are you?   wcslen: 12   sizeof: 4
    
    68. myCStr:                  00A30888   wcslen: 12   sizeof: 4
    69. (LPCWSTR)myCStr:         How are you?   wcslen: 12   sizeof: 4
    70. LPCWSTR = myCStr:        How are you?   wcslen: 12   sizeof: 4
    
    71. CT2A(myCStr):            How are you?   strlen: 12   sizeof: 132
    72. CT2CA(myCStr):           How are you?   strlen: 12   sizeof: 132
    73. CT2W(myCStr):            008FC610   strlen: 12   sizeof: 260
    74. CT2CW(myCStr):           00A30888   strlen: 12   sizeof: 4
    
    75. (LPSTR)CT2CA(myCStr):    How are you?   strlen: 12   sizeof: 4
    76. (LPSTR)CT2CA(myCStr):    How are you?   strlen: 12   sizeof: 4
    77. (LPCSTR)CT2CA(myCStr):   How are you?   strlen: 12   sizeof: 4
    78. (LPCSTR)CT2CA(myCStr):   How are you?   strlen: 12   sizeof: 4
    79. (LPWSTR)CT2W(myCStr):    How are you?   wcslen: 12   sizeof: 4
    80. (LPCWSTR)CT2CW(myCStr):  How are you?   wcslen: 12   sizeof: 4
    81. (LPCWSTR)CT2W(myCStr):   How are you?   wcslen: 12   sizeof: 4
    82. LPSTR = CT2A(myCStr):     烫烫烫烫隔?  strlen: 139   sizeof: 4
    83. LPSTR = CT2CA(myCStr):    烫烫烫烫,魪   strlen: 139   sizeof: 4
    84. LPCSTR = CT2CA(myCStr):   烫烫烫烫狊?  strlen: 139   sizeof: 4
    85. LPCSTR = CT2A(myCStr):    烫烫烫烫髲   strlen: 139   sizeof: 4
    87. LPCWSTR = CT2CW(myCStr): How are you?   wcslen: 12   sizeof: 4
    请按任意键继续. . .
    
    65. LPWSTR = CT2W(myStr):    请按任意键继续. . .
    
    LPCWSTR myStr = _T("你好吗?");//How are you?