How to convert a TCHAR array to std::string?

后端 未结 6 1520
孤街浪徒
孤街浪徒 2020-12-06 09:14

How do I convert a TCHAR array to std::string (not to std::basic_string)?

6条回答
  •  自闭症患者
    2020-12-06 09:49

    Simple!

    char* tcharToChar(TCHAR* buffer)
    {
        char *charBuffer = NULL;
        int lengthOfbuffer = lstrlenW(buffer);
        if(buffer!=NULL)
        {
            charBuffer = (char*)calloc(lengthOfbuffer+1,sizeof(char));
        }
        else
        {
            return NULL;
        }
    
        for (int index = 0;
            index < lengthOfbuffer;
            index++)
        {
            char *singleCharacter = (char*)calloc(2,sizeof(char));
            singleCharacter[0] = (char)buffer[index];
            singleCharacter[1] = '\0';
            strcat(charBuffer, singleCharacter);
        }
        strcat(charBuffer, "\0");
        return charBuffer;
    
    }
    

    Then capture the char * in std::string

提交回复
热议问题