'strcpy': невозможно преобразовать параметр 2 из 'WCHAR *' в 'const char * - PullRequest
1 голос
/ 28 декабря 2011

Возникли некоторые проблемы с strcpy ...

Получение этой ошибки:

strcpy' : cannot convert parameter 2 from 'WCHAR *' to 'const char *

Вот код ...

char FunctionName[ 256 ]; 
UFunction *pUFunc                        = NULL;
strcpy( FunctionName, pUFunc->GetFullName() );

А также:

WCHAR* UObject::GetFullName ()
{
    if ( this->Class && this->Outer )
    {
        static WCHAR ObjectName[ 256 ];

        if (Outer == NULL)
        {
            wsprintf(ObjectName, L"");
        }
        else
        {
            if (Outer->Outer)
                wsprintf(ObjectName, L"%s %s.%s.%s", Class->Name.GetName(), Outer->Outer->Name.GetName(), Outer->Name.GetName(), Name.GetName());
            else if(Outer)
                wsprintf(ObjectName, L"%s %s.%s", Class->Name.GetName(), Outer->Name.GetName(), Name.GetName());
        }
        return ObjectName;
    }

    return L"(null)";
}

Ответы [ 2 ]

8 голосов
/ 28 декабря 2011

Вам нужен wcscpy для элементов WCHAR, а не strcpy. Но настоящая проблема в том, что вы пытаетесь преобразовать широкую строку в узкую строку. WideCharToMultiByte так как вы, кажется, на Windows.

0 голосов
/ 28 декабря 2011

Это довольно очевидно из ошибки: strcpy ожидает const char* в качестве второго параметра, и вы передаете WCHAR*

...