.| Autor | Beitrag |
|---|---|
|
000 14.08.2001, 15:52 Gollum |
Ich hab gestern angefangen eine Klasse zu basteln, die als Grundlage für meine OpenGL Projekte dienen soll... Das Ganze funktioniert jetzt insofern schon ganz gut das man eben ein Fenster erstellen kann, Auflösung ändern kann, Farbtiefe ändern kann und das ganze Standardzeug das so eine Klasse eben können sollte... Bis jetzt muss man aber noch selbst die WinMain Funktion definieren, und in dieser dann eben die Instanz der Klasse deklarieren, und das Fenster mit der erstellen und anzeigen.. Natürlich wäre es schöner wenn ich die WinMain wie bei der MFC irgendwo fix unterbringen könnte... Nur wo genau ist die WinMain bei der MFC ? Tja. Also weiß jemand wie das in der MFC gelöst ist?? --[url="http://www.thelordoftherings.com/cgi-bin/get-image.pl?ID=alan-lee-058 "]-N/A-[/url]
|
|
Profil || Suche |
|
001 14.08.2001, 17:15 Kriz |
Die WinMain() ist tief im Arsch von der MFC verkapselt =) Einsprungpunkt vom OS in das Programm sind zwei abgeleitete Klassen: Eine Klasse von CFrame, die andere von CDialog oder CEdit oder CWasweißich. Die Einsprungpunkte erledigt der Konstruktor aller Konstruktoren der MFC: CObject(); Kauf dir mal Jeff Prosise - Windowsprogrammierung mit der MFC 2. Auflage von Microsoft Press. Da steht alles drin, was man so für's MFC-Basteln wissen muß. Btw: Ich selber habe damals im Stupidum (*ggg*) unter der MFC mit OpenGL programmiert. Datt geht eigentlich ganz easy von der Hand. Brauchst nur die Bibliotheken opengl32.lib, glu32.lib und glaux.lib. Cu PS: Ansonsten weiter fleißig mit der WIn32-API proggen =) --K:R-I)Z++ Dieser Beitrag wurde am 14.08.2001 um 17:17 von Kriz bearbeitet. |
|
Profil || Suche |
|
002 14.08.2001, 17:46 Gollum |
Das ganze ist eh in der WinAPI geschrieben, nur möchte ich eine art "mini mfc für opengl" basteln, weil die MFC selbst soviel ich weiß einen ganzen Haufen virtuelle Funktionen hat und nicht grad so toll für die Performance sein soll... Aber bei der MFC reicht es ja eigentlich aus eine Klasse von CWinApp und eine von CFrameWnd abzuleiten und ein paar virtuelle methoden zu überschreiben um ein Fenster angezeigt zu bekommen... hmm wie machen die das? weisst du das zufällig ? :) --[url="http://www.thelordoftherings.com/cgi-bin/get-image.pl?ID=alan-lee-058 "]-N/A-[/url]
|
|
Profil || Suche |
|
003 14.08.2001, 20:25 Kriz |
Sorry, war CFrameWnd =) Wie ich bereits sagte, die WinMain() ist in CFrameWnd verkapselt worden und wird automatisch durch die Ableitung aufgerufen, die du aus CFrameWnd zwangsläufig erstellen mußt. Wo genau die WinMain() drinsteckt in welchen Dateien weiß ich auch net. Da hilft eventuell ein Blick in Headerdateien wie AFXWIN.H oder so. Wenn Du eine OpenGL-basierte Mini-MFC erstellen willst, rate ich dir eigentlich nur dazu, alle bekannten (und benötigten) Dateien aus der Win32 API und OpenGL in eigene Klassen zu verkapseln. Aber wieso willst du dir soviel Mühe machen? Na egal... Das virtuelle Funktionen etwas das System belasten, ist klar, schließlich handelt es sich bei solchen Ablegern um Funktionen, die late binding durchführen, also dynamisch zur Laufzeit vom Programm ihren Objekten zugeordnet werden. Aber die MFC geht ohne virtual eben nicht, weil das der einzigste Weg ist, das Polymorphismus-Dilemma aus dem Weg zu gehen. Beispielsweise JAVA ist permanent ans late binding gezwungen, was zusätzlich zum Interpretieren die ganze Sache geschwindigkeitsmäßig nicht zum Vorteil gereicht... Und ich glaube nicht, daß ein größeres Klassenkonzept wie du es vorhast OHNE late binding auskommt (außer du willst eine Hierarchie aus Klassen, die nichts voneinander bei der Vererbung überladen, hehehe. Da aber jeder Destruktor aus der Vaterklasse mindestens virtuell sein muß, hat sich deine Vorstellung vom virtual-freien Klassensystem schon erledigt). Cu --K:R-I)Z++ |
|
Profil || Suche |
|
004 14.08.2001, 20:53 Gollum |
danke für die antwort :) ich werd mir mal die afxwin.h genauer anschaun :) das mit den virtuellen funktionen ist mir schon klar... genau deswegen will ich ja eine eigene kapselklasse schreiben die nur das wichtigste beinhaltet... warum will ich mir so viel mühe machen? tja. kA :) programmieren rox und ich denke es ist die mühe wert :) --[url="http://www.thelordoftherings.com/cgi-bin/get-image.pl?ID=alan-lee-058 "]-N/A-[/url]
|
|
Profil || Suche |

