Benutzer mit den meisten Antworten
Header für alle Forms

Frage
-
Hallo,
Ich arbeite mit Visual Studio C++ 2010, ich habe mir jetzt schon 2 Bucher zugelegt und recht gut durchgearbeitet, ich komme halbwegs gut mit C++/Cli und .Net zurecht.
aber jetzt zu meinem Problem:
ich brauch für ein größeres Projekt mehrere Forms, was auch kein Problem macht.
ich habe Form1 als Haupt-Form und Form2 als Dialog, und eine Header in der ich alle Klassen etc. definiert habe.
Das Problem die inhalte der Header stehen mir nur in Form1 zur verfügung, ich brauche sie aber dringend in Form2 (und weiteren).
Ich hab schon alles versucht, gegoogelt und meine Bücher gewälzt...
bin aber nicht zu einem ergebniss gelangt.
Ich Bitte um Hilfe!
und danke schon mal für Antworten.
Ich bin
- Bearbeitet Wugi Montag, 2. Januar 2012 19:13
Antworten
-
Gelöst:
der Fehler lag woanders
ich muss ja meine Header mit Klassendefinitionen
mit #include anweisungen in:
stdafx.h und in der von den Forms einbinden
dabei kamen Fehlermeldungen, die aber nicht wie ich annahm auf das einbinden zurückzuführen sind.
Sondern ein Fehler in einer Funktion in einer Klasse (ListBox^ statt Windows::Forms::ListBox^)
ich bedanke mich trotzdem,
über einen umstieg werde ich mal nachdenken...
denke zwar nicht da ich diese nicht ganz gelungene Kombination, nun schon mal behersche...
- Als Antwort markiert Wugi Dienstag, 3. Januar 2012 15:02
Alle Antworten
-
Hallo Wugi,
den wohl besten Tipp den ich dir geben kann, ist auf C++/CLI zu verzichten und auf C# Umzusteigen.
Angefangen, dass du im Web Tonnenweise Hilfen für C# bekommst (im gegensatz zu C++/CLI) gehst du einer Menge Probleme aus dem Weg. Der Windows Forms Designer von C++/CLI ist miserabel und unterliegt jeder Menge Einschränkungen (z.B. dem von dir geposteten). Zudem fehlt dir in VS 2010 das komplette Intellisense. C++/CLI Programme die du Auslieferst benötigen neben dem .net Framework auch immer noch die VC-Runtime, die du zusätzlich jedesmal mit installieren musst. Und nach dem kompilieren hast du auch nichts anderes, als wenn du das Programm mit C#/VB.net oder jeder anderen .net Sprache entwickelt hättest.
C++/CLI ist primär dafür gedacht, Wrapper für managed Code zu schreiben. Für alles andere ist nicht zu empfehlen!
Ich möchte dich auch auf den Blog von Jochen Kalmbach (MVP VC++) aufmerksam machen: http://blog.kalmbach-software.de/de/2010/03/05/ccli-und-winforms-macht-keinen-sinn/#comment-538.
Das hilft dir jetzt bei deinem Problem wohl nicht sonderlich weiter, aber solche Probleme hättest du nach einem Wechsel auf C# nicht mehr.
Viele Grüße
Holger M. Rößler
Kaum macht man es richtig, schon funktioniert es
- Bearbeitet Holger M. Rößler Montag, 2. Januar 2012 23:30
-
Das ist wie in jedem C++ Programm auch. Du benötigst eine Refreenz oder einen Zeiger auf das Form. Gib die entsprechende Info weiterund Du kannst auch darauf zugreifen.
Ansonsten kjann ich Holger nur zustimmen. C++/CLI und Windows Forms macht keinen Sinn.
C++/CLI ist eine fantastische Wrapper-Sprache aber mehr auch nicht.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
- Bearbeitet Martin RichterModerator Dienstag, 3. Januar 2012 06:58
-
Gelöst:
der Fehler lag woanders
ich muss ja meine Header mit Klassendefinitionen
mit #include anweisungen in:
stdafx.h und in der von den Forms einbinden
dabei kamen Fehlermeldungen, die aber nicht wie ich annahm auf das einbinden zurückzuführen sind.
Sondern ein Fehler in einer Funktion in einer Klasse (ListBox^ statt Windows::Forms::ListBox^)
ich bedanke mich trotzdem,
über einen umstieg werde ich mal nachdenken...
denke zwar nicht da ich diese nicht ganz gelungene Kombination, nun schon mal behersche...
- Als Antwort markiert Wugi Dienstag, 3. Januar 2012 15:02
-
Das einbinden der Header dateien in die stdafx.h wäre falsch. Dort sollten nur Dateien eingebunden werden die sich im Projekt nicht oder ganz selten ändern.
Das einbinden der Header zusätzlich in den Forms wäre ja dann doppelt gemoppelt.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de