Suchergebnisse
Suchergebnisse 1-20 von insgesamt 165.
Der Aufbau der "hpp" (warum nicht einfach nur .h ?) ist prinzipiell korrekt. Du hast nun 3 Möglichkeiten. 1. Entweder du implementierst die Funktionen direkt in der Klasse selbst, was aber die mit Sicherheit schlechteste Variante ist. 2. Du kopierst den Teil deiner cpp und implementierst die Funktionen unterhalb der Klassendefinition. 3. Du kannst die ".cpp" als ".inl" verwenden. Dazu musst du nichts weiter machen, als unter der Klassendefinition im Header die ".inl"-Datei zu includen. Höchstwah...
Kann man std::string so einfach mit cout ausgeben? Muss man da nicht .c_str() verwenden? Auch wenn es nicht die unbedingte Lösung deines problems ist, aber nutze doch einfach die printf-Funktion? Zu cout kann ich leider nicht mehr sagen, da ich das nie verwende.. Der ganze Funktions-Code wäre in dem Fall vielleicht sinnvoller, als deine Code-Fragmente.
@Gotbread Wenn schon INT main, dann auch den return-Wert nicht vergessen.. :roll:
Ich könnte nach wie vor zu der Thematik noch etwas Hilfe gebrauchen. Mir ist nicht ganz klar, welche Matrizen ich brauche und wie ich diese multiplizieren muss. Wenn mir es jemand Verbal erklären kann, würde das schon reichen (denke und hoffe ich).
Einen Polygon-Algorithmus zu finden der Löscher berücksichtig, ist recht schwer. Ein Dirty Trick könnte sein, dass loch einfach als normales Polygon zu zeichnen, aber eben in der Hintergrundfarbe. Wie das mit DX ist weiß ich nicht, ich musste das bisher immer nur 2D machen.
Das funktioniert doch aber nur bei ganz primitiven Polygonen! Besser wäre doch ein Ansatz für jede mögliche Polygon-Form. Da kommt die Polygon-Triangulation ins Spiel.. Es sei noch erwähnt: "Triangle fans are not supported in Direct3D 10 or later." Quelle: http://msdn.microsoft.com/en-us/library/bb206271(VS.85).aspx
Google mal nach "Polygon Triangulation", dass sollte dein Problem lösen. Da ich nicht aus der DirectX-Ecke komme, würde ich das so machen. Letztendlich wird DX intern nichts anderes machen..
Das ist halt die "künstlerische Freiheit" des Programmierers. Der Code und Code-Style von 100 Entwicklern wird sich teils mehr oder weniger stark voneinander unterscheiden. Ich bin der Meinung, dass für jede Klasse eine eigene .cpp- und .h-Datei verwendet werden sollte. Ist eine zweite Klasse ganz klein, kann diese sicher auch in eine bestehende Datei integriert werden. Es ist halt Geschmacks- und Ansichtssache.. Stell dir mal vor du hättest ein etwas umfangreicheres Projekt und würdest den Code...
Im Prinzip schon. Du kannst Dir das wie bei einem normalem Navi vorstellen, wenn du vom 2D in den 3D Modus umschaltest. Ich habe 2D-Koordinaten und muss sie quasi irgendwie "3D darstellen".
Hallo Community, ich habe folgendes Problem. In meinem aktuellen Projekt zeichne ich ein Straßennetz zweidimensional. Ich habe also nur X- und Y-Koordinaten (bereits in Bildschirm-Koordinaten umgerechnet) vorliegen. Ich tue mich etwas schwer, den 3D-Modus richtig hinzubekommen. Mein Ansatz war es, eine Projektionsmatrix zu erstellen und damit die Punkte zu multiplizieren. Meine Idee war es, den Z-Parameter der der einzelnen Koordinaten mit 0 anzunehmen und die Projektionsmatrix (Z > 0) in einem ...
zu 1. Ich denke, dass wird auf den Port ankommen! Ich kann mir kaum vorstellen, dass die Firewall Standardports (zb 80 http, port 21 ftp, ...) blockiert. Solltest du geblockte Ports verwenden denke ich nicht das du die Blockade so ohne weiteres aufheben kannst. Dann würde es ja jeder so machen und die firewall wäre nichtig. zu 2. Über diese Page solltest du eigentlich die IP deines Rechners erhalten.. Zitat Aber wie kann ich dem Router mitteilen, mit welchem PC er mich verbinden soll ? Was meins...
Ich habe das Problem gelöst. Die Templateklasse muss tatsächlich ohne ELYSIUM_API gekennzeichnet werden. Allerdings ist das nur die halbe Lösung. Das Problem war die statische Variable des Singletons. C-/C++-Quelltext 1 2 template<class C> C* Singleton<C>::CurrentInstance = 0; ... löste das Problem.
Ich bekomme diesen Linkerfehler einfach nicht raus. Vielleicht kann mir jemand helfen? Der Header im DLL-Projekt(die Engine) ("elys_engine.h") C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 // Elysium_Engine.h // #if defined _MSC_VER && _MSC_VER >= 1020 #pragma once #endif #ifndef __ELYSIUM_ENGINE_H_INCLUDED__ #d...
Zitat von »"knivil"« Brauchst du denn ein Singleton, oder reicht ein einfacher namespace? Ein Namespace dient der Verhinderung von Namensüberschreitungen (Funktionen, Variablen, ...) und zur Einteilung von Quellcode in bestimmte Segmente. Mit Singleton verhindere ich, dass es von einer Klasse mehrere Instanzen geben kann. Was haben die beiden miteinander zu tun? Zitat von »"knivil"« Weisst du, was du da tust? ich denke schon... und du?
Ich wollte es erstmal mit irgendeiner Singleton-Variante hinbekommen.
Ich hatte es vorher über eine andere templatebasierte Singleton-Klasse versucht, aber das Ergebnis war nicht zufriedenstellend. Werde es jetzt mal auf die neue Klasse umstellen. Übrigens: Das allokieren über new könnte ich auch mit ner statischen Variable übergehen, weil sich über das löschen beschwert wurde..
Hallo, ich habe da mal ein kleines Problem mit 'ner Singleton-Basisklasse. Hier die Singleton-Basisklasse: C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 class ELYSIUM_API Singleton { public: static Singleton* exemplar(); private: static Singleton *instanz; Singleton() {} Singleton(const Singleton&); ~Singleton() {} class Waechter { public: ~Waechter() { if(Singleton::instanz != 0) { delete Singleton::instanz; } } }...
Dann leite die Funktion von der Basisklasse ab. Wenn du nicht weißt wie, schau am Besten mal in die MSDN oder frag bei Google nach. Was möchtest du eigentlich genau machen? Dialoge kann man auch ohne MFC bauen. Das ist zwar (je nach dem was man machen möchte) schwierger, aber die MFC ist doch teilweise ganz schön bescheiden..
Wenn du mit einem Standard MFC-Dialog arbeitest (Basisklasse: CDialog), gibt es eine OnInitDialog()-Funktion, die du nur zu überschreiben brauchst. Wenn du kein leeres MFC-Projekt erstellst, sollte die OnInitDialog()-Methode eigentlich schon existieren.
Du erstellst ein MFC-Projekt als DLL. Dort implementierst du deine Funktionen. Das DLL-Projekt erzeugt dir eine Library-Datei (*.lib), die du in dein Hauptprogramm einbinden kannst. (ALT+F7 --> Kategorie 'Link' --> den lib-name in das Feld 'Object/library modules:' eingeben). Eine librarydatei wird nur erzeugt, wenn du mindestens eine Funktion exportierst! Beispiel der DLL-Funktion: C-/C++-Quelltext 1 2 3 4 __declspec(dllexport) int MeineDllFunktion(VOID) { ; // ... } Benutzung der DLL-Funktion ...