Codeelement schreibgeschützt
-
Hallo zusammen,
mit dem Visual Studio 2005 habe ich ein seltsames, aber nerviges Problem.
Ich habe einen Dialog angelegt. Eine Zeit lang lief alles prima, aber seit neuestem habe ich folgendes merkwürdiges Verhalten: Ich kann zwar ohne Probleme im Ressourcen-Editor Steuerelemente hinzufügen, löschen oder verändern. Will ich aber zum Beispiel einem Steuerelement per Wizzard einer Variablem zuordnen, kommt diese Fehlermeldung:
Das Hinzufügen/Entfernen ist nicht möglich, da das Codeelement "CMyDlg" schreibgeschützt ist.
ALLE Dateien des Projekts sind OHNE Schreibschutz. Das Projekt steht unter der Kontrolle von SourceSafe. Es sind aber auch ALLE Dateien zur Bearbeitung ausgecheckt. Auch ein Neustart des Studios hilft nicht. Zu Fuß kann ich die Änderungen ohne Probleme machen. Nur mit dem Wizzard klappt das eben nicht.
Wenn da stehen würde, dass irgendeine Datei nicht beschreibbar wäre, würde ich es ja noch verstehen - aber ein Codeelement? Also ein Objekt? Wie soll das denn möglich sein?
Weiß jemand einen Rat, wo man da nachschauen könnte? Über Google hab ich leider nichts treffendes finden können...
Für hilfreiche Tipps schon mal im Voraus vielen Dank.
Wes
-
sieht danach aus als wenn du eine funktion ueberladen willst welche es nicht zulaesst (oder so aehnlich)
-
Es handelt sich NUR um das Hinzufügen einer Variablen, die einem Steuerelement zugeordnet werden soll. Mehr nicht.
Daneben werden mir übrigens keinerlei Steuerelementereignisse in dem Eigenschaftenfenster angezeigt.
-
Das selbe problem hab ich im moment auch. Ich kann im Code selber prima schreiben und speicher geht auch ohne Probleme. Auch das hinzufügen von Dialogfeldelementen klappt, bennenen auch noch, aber wenn ich einen event-handler / eine Funktion hinzufügen will kommt die Fehlermeldung mit dem Schreibschutz. Wie Wesley67 schon sagte, google weiß keinen rat und ich langsam auch nicht mehr.
Das ist ziemlich nervig, wenn man ein umfangreicheres projekt hat und nicht alles neu machen will.
-
Ich habe inzwischen mal ein wenig auf den englischen Seiten gesucht, da ich nun auch den genauen englischen Wortlaut der Meldung gefunden habe:
"add/remove operation is impossible, because the code element 'Cxxx' is read only"
Das böse Erwachen: Den Fehler gibt es mittlerweile schon seid 2 Jahren und in dieser Zeit hat MS es nicht geschafft, den Fehler zu fixen!!! Auch ein Update mit SP1 hilft nicht.
2 Tipps habe ich gefunden:
1. Tipp: Das Projekt schließen und die Solution-Dateien löschen (.sou und .ncb), anschließend Projekt wieder öffnen und IntelliSense aktualisieren lassen. Dann geht es für eine Weile wieder - ist aber keine dauerhafte Lösung.
2. Tipp: Die Deklaration der Dialog-Klasse aus der .h-Datei in die .cpp-Datei verschieben. Das hilft wohl dauerhaft, hat aber ggf. Konsequenzen für den Programmaufbau, falls die Dialog-Klasse noch anderweitig eingebunden werden soll. Probiert hab ich die Lösung noch nicht. Könnte mir vorstellen, dass diese Lösung für eine ganze Reihe von Projekten gar nicht realisierbar ist, weil der Dialog auch in anderen Dateien per .h-Datei eingebunden werden muss...
Ich schau trotzdem mal noch weiter. Vielleicht finde ich noch was besseres...
-
Dieses IntelliSense ist schon immer eine Fehlerquelle!
Dieser Bug existiert nun auch in VS2008!
Bei mir reicht es die ncb zu löschen und beim erneutem öffnen des Projektes wird diese neu angelegt.
Des öfteren habe ich auch das Phänomen das von mir erstellte Methoden nicht in der IntelliSense-Liste erscheinen - auch so ein Problem seit mehreren Versionen!