VC2005工程属性设置中(Configuration properties-->General) Character Set -->Not Set 和 Use Unicdoe Character Set 有何不同?它们各有什么优势和特点? 它们之间字符转换有什么规律?

解决方案 »

  1.   

    一个默认是使用窄字符 ,一个是使用宽字符;一个字符只占一个字节,一个宽字符通常占2个字节。UNICODE字符集称为宽字符,16位,可以存放世界上所有语言所有文字。
      

  2.   

    http://topic.csdn.net/u/20090911/10/ce82387c-b997-4e46-a0ec-869fc0aeca05.html
      

  3.   

    Unicdoe 下如何往 char buf[10] 中 拷贝 字符串呢?
      

  4.   

    Unicdoe 下如何往 char buf[10] 中 拷贝 字符串呢?strcpy也支持的, 用wcscpy就是unicode 
      

  5.   

    VC++2005下一个应用程序(UniCode 工程), 它要调用一个开源的代码(开源的代码是经过测试的).  开源代码中一个函数定义如下:
    int WINAPI OpenPortAndConnect (HANDLE &hCom, char* cPort, UCHAR flagCrc);
    int WINAPI OpenPortAndConnect (HANDLE &hCom, char* cPort, UCHAR flagCrc)
    {
        ....
    }
    现在的情况:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    int WINAPI OpenPortAndConnect (HANDLE &hCom, wchar_t* cPort, UCHAR flagCrc);
    int WINAPI OpenPortAndConnect (HANDLE &hCom, wchar_t* cPort, UCHAR flagCrc)
    {
        ....
    }void Crm900Dlg::OnBnClickedButton1()
    {
        wchar_t* comchar=L"COM3:";
        CString  ComboText;
       
        ctrCombo.GetWindowText(ComboText);   //combobox 控件, 得到控件所选的COM口.
        comchar = ComboText.GetBuffer(ComboText.GetLength());    if (OpenPortAndConnect(hCom, comchar, CRC))
        {
            //这样可以连接成功
        }
    }
    现在的情况:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++出现的问题:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    int WINAPI OpenPortAndConnect (HANDLE &hCom, char* cPort, UCHAR flagCrc);
    int WINAPI OpenPortAndConnect (HANDLE &hCom, char* cPort, UCHAR flagCrc)
    {
        ....
    }void Crm900Dlg::OnBnClickedButton1()
    {
        char* comchar="COM3:";
        CString  ComboText;
       
        ctrCombo.GetWindowText(ComboText);   //combobox 控件
        strcpy(comchar, (const char *)ComboText.GetBuffer(ComboText.GetLength()));    if (OpenPortAndConnect(hCom, comchar, CRC))   // 或 if (OpenPortAndConnect(hCom, "COM:3", CRC))
        {
            //这样连接不成功
        }
    }
    出现的问题:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++想得到的结果:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++(想维护开源代码的完整性, 不到改动开源代码)
    int WINAPI OpenPortAndConnect (HANDLE &hCom, char* cPort, UCHAR flagCrc);
    int WINAPI OpenPortAndConnect (HANDLE &hCom, char* cPort, UCHAR flagCrc)
    {
        ....
    }void Crm900Dlg::OnBnClickedButton1()
    {
        char* comchar="COM3:";
        CString  ComboText;
       
        ctrCombo.GetWindowText(ComboText);   //combobox 控件    //这里应如何处理呢?
        OpenPortAndConnect(hCom, comchar, CRC);}
    想得到的结果:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++