Aufgetauchtes 'A' In Funktionsnamen
-
Ich habe eine Klasse geschrieben für ein eigenes Archivsystem.
Dort gibt es die überladenen Funktion DeleteFile.
Wenn ich aber eine Instanz der Klasse erstelle, gibt mir das Erkennungssystem
DeleteFileA vor, die ich dann prima nutzen kann, geht auch, aber es gibt kein DeleteFile.
Wo kommt das A her ? (Habe in der Klasse nach DeleteFileA gesucht (Strg+F) aber ich habe da nich noch versehentlich ein DeleteFileA)
Im Prog:void __fastcall TPacker::Lschen1Click(TObject *Sender) { if (View->Selected->Index != -1) { Pack->DeleteFileA(View->Selected->Index,true); View->Items->operator [](View->Selected->Index)->Delete(); } }
header (Klasse):
void DeleteFile(int Index); void DeleteFile(int Index, bool Reload)
cpp Klasse:
void Packager::DeleteFile(int Index) { DeleteFile(Index,false); } void Packager::DeleteFile(int Index, bool Reload) { if (!Reload) { Files[Index]->Clear(); Extension[Index] = "."; Compressed[Index] = false; Name[Index] = ""; } else { if (Index < (FileCount-1)) { for (int i = Index; i < (FileCount-1); i++) { Files[i] = Files[i+1]; Extension[i] = Extension[i+1]; Compressed[i] = Compressed[i+1]; Name[i] = Name[i+1]; } Files[FileCount-1]->Clear(); Extension[FileCount-1] = "."; Compressed[FileCount-1] = false; Name[FileCount-1] = ""; } } FileCount--; }
-
Steht im Windows-Header.
Sowas wie#define DeleteFile DeleteFileA
-
Hat das für mich irgendwelche Konsequenzen ?
Und weshalb hat man sowas eingerichtet ?
-
Also, viele Funktionen haben eine ANSI und eine WideChar (Unicode) Version. Die Windows-API kennzeichnet diese häufig durch ein großes A für ANSI und ein W für Unicode am Ende.
Aber dies alles steht häufig in der Hilfe zu den jeweiligen Funktionen.
Ab CPPB-Version >2009 werden häufig die Unicode-Versionen benutzt, oder alle Funktionen die ein A haben, werden auf W "umgeleitet"...
z.B. Application->MessageBoxA(...)
-
In diesem speziellen Fall steht das alles hier
http://msdn.microsoft.com/en-us/library/aa363915.aspx