Elemente richtig entfernen
-
Hi
ich habe in meinem Programm ein Menü eingefügt mit Datei->Beenden.
Beenden habe ich einen Event-Handler hinzugefügt und bearbeitet. Nun brauch ich das Menü nicht mehr, also hab ich es gelöscht. Und auch den Beenden-CodeBlock. Nun bekomm ich 2 Linker-Fehler. Wo muss ich noch was löschen und ist eine Reihenfolge beim Löschen von solchen sachen zu beachten?
Vielen Dank
Bernd
-
hast mal etwas code oder detailierte fehlermeldung ?
linkerfehler: haste ne lib vergessen zu linken ?? *blödfrag*
-
Ich mach mal ein Beispiel:
Ich erzeuge eine MFC-Application (Dialog). Dieses nenn ich hier mal "test7". Dann füge ich ein Menü hinzu. Das Menü erhält den Punkt "Datei" mit Unterpunkt "Beenden". Für Beenden füge ich einen Eventhadler hinzu und bearbeite den Code:
void Ctest7Dlg::OnDateiBeenden() { // TODO: Add your command handler code here OnCancel(); }Soweit so gut. Noch das Menü mit dem Dialogfeld verknüpfen und alles klappt wie gewollt. So, und nun möchte ich das Menü doch nicht mehr und will es deshalb löschen.
Dazu lösch ich den oben genannten Code, entferne die Verknüpfung mit dem Dialogfeld und lösche das Menü in der Resourcen-Ansicht. Dann bekomm ich folgende Linker-Fehler:
test7 error LNK2001: unresolved external symbol "protected: void __thiscall Ctest7App::OnDateiBeenden(void)" (?OnDateiBeenden@Ctest7App@@IAEXXZ) test7 error LNK2001: unresolved external symbol "public: void __thiscall Ctest7Dlg::OnDateiBeenden(void)" (?OnDateiBeenden@Ctest7Dlg@@QAEXXZ)Wie bekomm ich die Anwendung zum Laufen? Wie gehe ich korrekt beim entfernen von Steuerelementen bzw. Menüs vor?
Vielen Dank
Bernd
-
mal public, mal protected....... vielleicht auch mal etwas privater

-
Ah, sehe gerade, das der erste Linker-Fehler auf ein versehen von mir zurückzuführen ist(Hatte mich im Event-Handler-Assistenen verklickt).
Aber wie bekomm ich den 2ten weg?
Vielen Dank
Bernd
-
"unresolved externnal symbol" deutet daraufhin, daß du irgendwo in einem Header eine Funktion (in deinem Fall "OnDateiBeenden") für die Klasse Ctest7Dlg geschrieben hast um irgendwo anders verwendest.
Lösung:
Suche nach "OnDateiBeenden" und lösche die betreffenden Code-Zeilen. Sollte gehn.
-
Ok, jetzt gehts wieder. Aber gibts da keinen schnelleren Weg, um sowas zu entfernen?
Vielen Dank
Bernd
-
Wenn Du die Funktionen mit dem Klassen-Assi hinzufügst kann er sie auch wieder entfernen (bis auf die Impl.)