1

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)";
}
4

2 に答える 2

9

WCHARアイテムにはstrcpyではなくwcscpyが必要です。しかし、本当の問題は、幅の広い文字列を幅の狭い文字列に変換しようとしていることです。WideCharToMultiByteあなたはWindowsを使っているようですから。

于 2011-12-28T01:37:26.740 に答える
0

エラーからかなり明らかです:strcpyはconst char*2番目のパラメーターとして期待し、あなたは渡していますWCHAR*

于 2011-12-28T01:38:40.120 に答える