Namespace von WinAPI???
-
Ich habe eine Klasse (gedownloaded
cooles deutsch), die die Methode DeleteFile(uint) enthält.
Dann habe ich eine Wrapperklasse geschrieben und die o.a. Klasse abgeleitet. Darin habe ich eine Methode selber geschrieben, die die API Funktion DeleteFile(LPCTSTR) aufrufen soll.Mein Problem ist, der Compiler meldet Fehler, er kann nicht LPCTSTR nach uint konvertieren.
Ich habe jetzt 3 Möglichkeiten:
1. Die Wrapperklasse weglassen und die Funktionalität außerhalb der Klasse programmieren, damit ruft DeleteFile immer die API Funktion auf (nicht schön)2. Es gibt einen Namespace für WinAPI?
Das ist auch gleich meine Frage.3. Wisst ihr noch eine dritte Lösung??
Gruß
PS: War mir nicht ganz klar, ob ich das nach C++ posten soll oder nach WinAPI
-
nicht böse gemeint aber:
3. C++ lernenDie Wrapperklasse weglassen und die Funktionalität außerhalb der Klasse programmieren, damit ruft DeleteFile immer die API Funktion auf (nicht schön)
das hört sich für mich an, als ob du keinen beil von C++ hast
schick mir einfach das Projekt an meine E-Mail und ich kann mir den Fehler angucken
-
electron_1 schrieb:
1. Die Wrapperklasse weglassen und die Funktionalität außerhalb der Klasse programmieren, damit ruft DeleteFile immer die API Funktion auf (nicht schön)
erklärung
das objekt hat doch seinen eignen scopeelectron_1 schrieb:
2. Es gibt einen Namespace für WinAPI?
Das ist auch gleich meine Frage.nein
electron_1 schrieb:
3. Wisst ihr noch eine dritte Lösung??
namespace Foo { void DeleteFile(uint) { // umwandeln von uint nach const char* ::DeleteFile(/*..*/); // winapi func aufrufen } }[edit]
ganz schön langsam heute
-
class A { deleteFile(uint); }; class B : public A { deleteAllFiles(string); }; B::deleteAllFiles(string Pfad) { //gib mir alle Dateinamen in diesem Pfad while(Dateiname != "") { deleteFile(Dateiname);//Compiler meldet Fehler } }Jetzt wird es hoffentlich klarer. A macht irgendwas tolles mit Dateien (zippen) und hat zufällig irgendeine Methode deleteFile(uint) die ich aber gar nicht aufrufen will.
Mein deleteFile(Dateiname) hat natürlich einen Scope, nähmlich den von A und genau das will ich nicht!
-
dann gehe doch in den globalen namespace

void B::deleteAllFiles(string Pfad) { while(Dateiname != "") { ::DeleteFile(Dateiname); } }[edit]
blödes bold tag
[edit2]
text etwas eindeutiger geschrieben
-
das wars
danke