none
Windows-Forms-Designer zerstört Headerfiles in Visual Studio 2012 RRS feed

  • Frage

  • Hallo,

    ich weiß, ich weiß: Windows Forms und C++/CLI ist so eine Geschichte...;-) Und es lassen sich (ohne "Tricks") keine neuen Windows-Forms-Projekte mehr in VS2012 anlegen. Aber es ist zugesagt, dass sich bestehende Projekte weiterhin be- und verarbeiten lassen. Nur leider funktioniert genau das überhaupt nicht.
    Was der Designer überhaupt nicht mag, sind Forwarddeclarations im zu designenden Headerfile. Die scheint er nämlich nicht wirklich als solche zu betrachten.
    Dann erscheinen so überaus vielsagende Fehlermeldungen wie "Ungültiges Zeichen im Pfad" o.ä. Der Trick, den ich irgendwo mal gelesen habe, in diesem Fall die zu designende Klasse als erstes vorwärts zu deklarieren, führt zwar dazu, dass der Designer die Form / das UserControl zwar anzeigt - aber ein Bearbeiten sollte man nur in Verbindung mit irgendeinem Sourcerepository machen. Denn sehr wahrscheinlich ist das Headerfile danach unbrauchbar. Der Designer hat dann i.d.R. ganze Arbeit geleistet: Jenachdem was man macht, schmeißt er sämtliche Deklarationen raus und in InitializeComponent() stehen dann überall solche Dinge wie "this=false" wo vorher z.B. "this->checkBox1->Checked=false" stand. Nun habe ich die Forwarddeclarations ausgelagert in ein separates .h-File und das dann z.B. in Form.h includiert. Das ist dann quasi der Einäugige unter den Blinden. Da kommt dann die komplette Zerstörung nicht mehr so oft vor.
    Aber (in Relation) "kleinere" Katastrophen passieren dennoch: Wenn ich z.B. ein Control entferne, nimmt er zwar die Deklaration raus - InitializeComponent() bleibt aber unberührt. Auch in diesem Thread möchte ich anmerken, dass es sich hier um fast 600 Projekte handelt. Die können nicht "mal eben" auf C# umgestellt werden. Da aber C# und WPF das mittel- bis längerfristige Ziel einer Umsetzung (die bereits begonnen hat) ist, muss das ganze noch eine Zeit lang nebeneinander betrieben werden.

    Falls irgendwer da für mich einen Tipp hat, wäre ich unglaublich dankbar.

    Viele Grüße

    Detlef

    Mittwoch, 20. März 2013 09:23