Ich bin unten mit dieser Funktion Problemen mit:illegal Aufruf von nicht-statischer Member-Funktion
char* GetPlayerNameEx(int playerid)
{
char Name[MAX_PLAYER_NAME], i = 0;
GetPlayerName(playerid, Name, sizeof(Name));
std::string pName (Name);
while(i == 0 || i != pName.npos)
{
if(i != 0) i++;
int Underscore = pName.find("_", i);
Name[Underscore] = ' ';
}
return Name;
}
Erklärung:
char* GetPlayerNameEx(int playerid);
Nutzung:
sprintf(string, "%s", CPlayer::GetPlayerNameEx(playerid));
Nun mein Problem hier ist
Persönliche Informationen entfernt n.
Wenn dies etwas zu tun hat, was ich bezweifle, ist diese Funktion in einem "Class" Header (Deklaration) enthalten.
Auch ich habe keine Ahnung warum, aber ich kann nicht die "Code" Box richtig überpassen.
Sie haben [undefiniertes Verhalten] (http://stackoverflow.com/questions/6441218/can-a-local-variables-memory-be-accessed-outside-its-scope) . Ich würde sowieso eine 'std :: string 'zurückgeben. – chris
Ist die Funktion GetPlayerNameEx im CPlayer-Namespace deklariert oder ist CPlayer der Klassenname? – Amadeus
@chris: Laut dem Compiler ist das OP-Programm in Wirklichkeit schlecht formuliert. Damit ein undefiniertes Verhalten auftritt, muss es zuerst kompiliert und ausgeführt werden. –