PInvoke復習の深い理解char*とwchar_t*とstringおよびwstring間の相互変換


この記事はc++のchar*とwchar_についてですt*とstringおよびwstring間の相互変換について詳細な分析紹介を行い、必要な友人の参考の下で
#ifndef USE_H_  
    #define USE_H_  

    #include   
    #include   
    #include   
    using namespace std;  
    class CUser  
    {  
    public:  
        CUser();  
        virtual~ CUser();  
        char* WcharToChar(const wchar_t* wp);  
        char* StringToChar(const string& s);  
        char* WstringToChar(const wstring& ws);  
        wchar_t* CharToWchar(const char* c);  
        wchar_t* WstringToWchar(const wstring& ws);  
        wchar_t* StringToWchar(const string& s);  
        wstring StringToWstring(const string& s);  
        string WstringToString(const wstring& ws);  
        void Release();  
    private:  
        char* m_char;  
        wchar_t* m_wchar;  
    };  
    #endif;
#ifndef USE_H_  
    #define USE_H_  

    #include   
    #include   
    #include   
    using namespace std;  
    class CUser  
    {  
    public:  
        CUser();  
        virtual~ CUser();  
        char* WcharToChar(const wchar_t* wp);  
        char* StringToChar(const string& s);  
        char* WstringToChar(const wstring& ws);  
        wchar_t* CharToWchar(const char* c);  
        wchar_t* WstringToWchar(const wstring& ws);  
        wchar_t* StringToWchar(const string& s);  
        wstring StringToWstring(const string& s);  
        string WstringToString(const wstring& ws);  
        void Release();  
    private:  
        char* m_char;  
        wchar_t* m_wchar;  
    };  
    #endif;

CStringに関しては、CString::GetBuffer()関数を利用して変換することができる、理屈は同じである.