Suchergebnisse
Suchergebnisse 1-17 von insgesamt 17.
gerne ccNet.h C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 class ccNet { private: eigenesStruct Var //private Member ccNet(); public: int methode1(); }; ccNet.cpp C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 ccNet::ccNet() { std::cout << &this->Var << std::endl; // Gibt eine Addresse aus }; ccNet::methode1() { std::cout << &this->Var << std::endl; // Gibt eine andere Addresse aus } Die Klasse ist wie gesagt eine Singletonklasse und wird als statische Library exportiert.
Mein Shared-Memmory Problem habe ich gelöst, aber dabei bin auf folgende Ungereimtheit gestoßen: Ich habe eine Singleton Klasse mit einem struct als private Membervariable. Warum liegt diese Variable im Konstruktor an einer anderen Addresse als in den normalen Methoden? Darauf bin ich gestoßen als ich versucht habe die Variable als CriticalObject im Konstruktor zu initialisieren, und daraufhin bei jedem Aufruf von EnterCriticalObject in den Methoden eine Speichezugriffsverletzung bekommen habe.
@David Danke. Das Stichwort Mutex war gut. Dadurch bin ich darauf aufmerksam geworden. In meinem Fall fahre ich aber wohl mit einem Critical-Section Object besser.
Ich bastel momentan ein einer C++ Klasse die für die Kommunikation zwischen Server und Client zuständig sein soll. U.a. wird dabei der Server initialisiert (bind, listen, etc) und, da es mehrere Clients geben soll, werden die verschiedenen Sockets verwaltet. Das Problem dabei ist natürlich, daß das das Programm nichtmehr viel tut wenn ich in einer Schleife neue Verbindungen akzeptiere ( mit accept :-)). Mein erster Gedanke war folgender: Ich starte einen neuen Thread, geb ihm einen Zeiger mit du...
Also die ncb Datei zu löschen ist auf jeden Fall ein offizieller Microsoft zertifizierter Lösungsweg (siehe Doku)
Also im Endeffekt ist das wiklich ne Frage des Compilers: Quellcode 1 2 3 4 5 6 7 8 9 pre: movl 4(%bsp) %eax // Addresse des Poniters vom Stack holen addl $1 (%eax) // Wert an der Addresse inrementieren movl (%eax) %eax // Wert in Register Speichern ret post: movl 4(%bsp) %ebx // Addresse des Poniters vom Stack holen movl (%ebx) %eax // Wert in Register Speichern $addl $1 (%ebx) // Wert an der Addresse inrementieren ret Wenn das ungefähr so übersetzt wird, dann macht das keinen Unterschied
Zitat Tabellen nimmt man für Tabellen und nix anderes, für alles andere nimmt man CSS Stylesheets, [...] Wie kann man denn mit CSS Frames simulieren? Bisher habe ich da Tabellen immer für sehr praktisch gehalten; z.B. eine Zelle für den Kopf und drunter 2 Zellen für Menue und Hauptframe, und in jeder Zelle lade ich dann mit php meine "Frame - Inhalte"
Mich hat ja nur verwirrt, daß in einem anderen Projekt C-/C++-Quelltext 1 GetPrivateProfileString(aBSection, "modelFile", "NULL", pHouse->m_pModelFile, sizeof(pHouse->m_pModelFile), "Data\\map1.ini"); funktioniert. Ich hab jetzt aber gerade bemerkt das da wohl irgendwo C-/C++-Quelltext 1 #define GetPrivateProfileString GetPrivateProfileStringA steht. Und das erklärt natürlich alles
Erstmal Danke für die Antworten. Mit wchar_t klappt's natürlich; ich frage mich aber warum ein und die selbe Funktion in David's Breakanoid char-Arrays schluckt, und in einem anderen Projekt nicht. Außerdem müßte ich dann für alle Argumente Variablen benutzen; wenn ich nämlich sowas wie "bla" in den Funktionsaufruf schreibe meckert er auch weil "bla" ein char[] ist.
Das ist ja nur die Unicode Variante der Funktion, die wird sowieso standardmäßig verwendet. Leider schluckt die aber auch keine char-Arrays... EDIT: Umcasten klappt auch nicht; der Kompieler meckert dann zwar nicht, aber es kommt Murks raus.
Ich möchte für ein kleines Program die Funktion "GetPrivateProfileString()" http://msdn.microsoft.com/library/defaul…ofilestring.asp nutzen. Allerdings muß ich die Argumente (char[]) manuell in LPCTSTR umcasten. Als ich die Funktion in einem anderen Programm, das auf einem Spiel aus David's Buch basiert, verwendet habe, mußte ich nicht casten. Jetzt würde ich gerne wissen wie man es hinbekommt, daß automatisch gecastet wird. Evtl. noch irgendwas dazulinken?
Also zu erst muß ich mal anmerken, daß es bei mir keine Probleme im Zusammenhang mit V C++ 2005 gegeben hat. -> keine Panik evtl. bezieht sich das nur auf ältere Versionen der Tribase Engine. Libraries einbinden ist auch nicht besonders aufregend: Erstmal öffnest du die Projektdatei für VC++2005. Die heißt "Alle Projekte 2005" oder so ähnlich. Dann gehst du in der Menüleiste auf Projekt -> Eigenschaften In dem neuen Fenster suchst du unter "Konfigurationseigenschaften" den Abschnitt "Linker" und...
Na gut, wer lesen kann ist klar im Vorteil Die Extradaten werden also bei Initialisierung der Modelle erzeugt. Allerdings sind sie bei mir trotzdem nicht da, auch wenn ich den bGenerateExtraData Parameter von tbModel:init explizit auf TRUE setze..
Folgendes Scenario: Ich habe einen Quader mit Kantenlänge 100 der seinen Mittelpunkt genau im Ursprung des Weltkoordinatensystems hat. Wenn ich jetzt tbLineHitsModel folgendermaßen aufrufe, gibt die Methode immer true zurück... C-/C++-Quelltext 1 tbLineHitsModel(tbVector3(1000, 0, 0), tbVector3(1000, 1, 0), quader->m_pModel, quader->m_mTransform, tbMatrixInvert(quader->m_mTransform)); Eigentlich sollte die Gerade durch die Punkte (1000,0,0) und (1000,1,0) parallel zur y Achse laufen und den Quad...
Danke für die Anregungen Durch das umcasten bin ich erstmal auf einen Fehler bei der Speicherreservierung aufmerksam geworden. An abstrakte Klassen habe ich garnicht mehr gedacht, da ich die ein oder andere abgeleitete Klasse ursprünglich noch weiter ableiten wollte.... und dann hätte mir das auch nicht weiter geholfen. Allerdings ist das konzeptionell sowas von schwachsinnig, daß ich es jetzt doch mit einer abstrakten Basisklasse implementieren kann
Ich wollte alle statischen Elemente (Häuser, etc. ) die sich auf einer Karte meines Spiels befinden in einer verketten Liste speichern. Für die einzelnen Elemente habe ich mir verschiedenen Klassen geschrieben, wie z.B. CHouse, die neben den Positionsangaben, etc auch einen Pointer auf ein 3D Modell besitzen. Um die Liste möglichst einfach zu halten, habe ich alle diese Klassen von einer Klasse CMapElment abgeleitet und speichere in der Liste Pointer vom Typ CMapElement der auf Objecte vom Typ C...
Leider kann ich meinen letzten Beitrag nicht editieren, weil ich ihn als Gast geschrieben habe, aber dann kommt eben hier die Entwarnung. Ich habe mir vor dem Neucompilieren schon eine Kopie von der Engine in ein anderes Verzeichnis gezogen und den Lib und Include Pfad dorthin gesetzt. Und dort lag eben noch eine alte Bibliotheksdatei rum :crying: