Suchergebnisse
Suchergebnisse 1-20 von insgesamt 81.
Was heißt hier "herumspekulieren"? Dass GetMessage() bei WM_QUIT 0 zurückgibt und somit aus der Hauptschleife springt, ist ja wohl bekannt. Mir ging es darum, herauszufinden, ob PostQuitMessage() darüber hinaus noch etwas wichtiges erledigt, was durch ein einfaches Flag dann nicht abgedeckt wäre. In diesem Fall wäre der Workaround natürlich nicht "zulässig", doch darüber macht dein MSDN-Eintrag eben leider keine deutlichen Aussagen.
Falls es noch jemanden interessiert: Es liegt nicht direkt an DestroyWindow(), sondern am dadurch ausgelösten Aufruf von PostQuitMessage(). Dieser sorgt aber offenbar sonst nur dafür, dass GetMessage() bzw. PeekMessage() aus der Hauptschleife herausspringen. Wenn man das also durch ein entsprechendes Flag ersetzt, kann man PostQuitMessage() umgehen und das Programm dennoch ordnungsgemäß beenden.
Die Klasse Window macht nichts weiter, als die Fensterklasse mit RegisterClassEx() zu registrieren, das Fenster mit CreateWindowEx() zu erstellen und in der klassischen Schleife Nachrichten abzuholen und darauf zu reagieren. Im Destruktor werden dann DestroyWindow() und UnregisterClass() aufgerufen. Ich habe inzwischen herausgefunden, dass die Meldung von Visual Studio nur auf eine ausgelöste Exception hinweist, die im Programm behandelt wird (also mehr eine Information als ein Fehler). Dennoch ...
Hallo, seit kurzem habe ich mich mal wieder mit DirectX beschäftigt und damit angefangen, die Hauptbestandteile einer entsprechenden Win32-Anwendung in Klassen zu kapseln. Bisher habe ich nur ein Fenster geöffnet und Direct3D initialisiert. Es läuft auch soweit problemlos, wenn ich allerdings zum Testen meiner Fehlerbehandlung absichtlich eine Exception aus einer Methode meiner Direct3D-Klasse werfe, wird nicht wie erwartet eine MessageBox mit der Fehlerbeschreibung geöffnet, sondern Visual Stud...
Zitat von »"MSDN"« By convention, the right and bottom edges of the rectangle are normally considered exclusive. In other words, the pixel whose coordinates are ( right, bottom ) lies immediately outside of the the rectangle. Folglich ist dein zweiter Ansatz der richtige.
Hmm, wenn nur ein Thread im Hintergrund blockiert wird, würde ich davon natürlich wenig merken. Allerdings habe ich nach der CriticalSection, innerhalb welcher editCtrlAppend() aufgerufen wird, mal einen einfachen Beep-Befehl eingefügt und ich höre auf jeden Fall zweimal den Piepton. Müsste nicht nach deiner "Theorie" einer der beiden Threads in bzw. vor der Section hängen bleiben und somit gar nicht zur Ausführung der Beep-Funktion kommen? :?
Naja, müsste nicht bei einem Deadlock das gesamte Programm irgendwie stehen bleiben, wenn die Threads jeweils auf den anderen warten? Das Programm funktioniert nämlich soweit ohne Probleme, es fehlt eben nur der zweite Quellcode in der Textbox.
Wie bereits erwähnt habe ich den Aufruf meiner Funktion mit EnterCriticalSection/LeaveCriticalSection umschlossen, was allerdings nichts geändert hat.
Genau, so ähnlich ich es bei WinHTTP auch. Dem Aufruf von WinHttpOpen() übergebe ich das Flag WINHTTP_FLAG_ASYNC und vor dem Senden der eigentlichen Anfrage lege ich mit WinHttpSetStatusCallback() eine Callback-Funktion fest, die dann immer aufgerufen wird, sobald irgendein Ereignis eintritt (z.B. dass Daten zum Lesen bereit sind). Und sobald ich sicher bin, dass alles übertragen wurde, füge ich diese empfangenen Daten (Quelltext der Seite) in eine Textbox ein (dazu dient die obige Funktion im e...
Hallo, ich beschäftige mich zurzeit mit WinHTTP (ob das etwas taugt muss ich noch herausfinden) im asynchronen Modus, das heißt, es werden mehrere HTTP-Requests "gleichzeitig" gestellt. Intern läuft das Ganze wohl über Threads ab, damit die Anwendung nicht blockiert, während auf Daten gewartet wird. Nun möchte ich die empfangenen HTML-Quelltexte der einzelnen Anfragen in eine Textbox hintereinander einfügen. Die Hilftsfunktion sieht dazu wie folgt aus: C-/C++-Quelltext 1 2 3 4 5 6 7 8 void editC...
Also eines der bekanntesten Tools für diese Aufgabe ist wohl der Bitmap Font Generator von AngelCode. Dort findest du auch mehrere Beispiele und Codes, wie man die Bitmap anschließend wieder in sein Programm einlesen und einzelne Buchstaben ausgeben kann.
Nein, Genion hat schon recht: Du musst Spalte für Spalte alle Pixel von oben nach unten (also vertikal) durchgehen. Es reicht nicht, nur in der ersten Zeile alle Pixel horizontal durchzugehen, da das eigentliche Zeichen unter Umständen seinen äußerst linken Pixel in einer anderen Zeile hat.
Na dann zeig mir mal eine Translation von Vektoren, die aus drei Komponenten bestehen, mit einer 3x3 Matrix.
Ein Grund (und möglicherweise der wichtigste) ist, dass man mit einer 4x4 Matrix auch Translationen, also einfache Verschiebungen beschreiben kann. Das geht mit einer 3x3 Matrix (bei dreidimensionalen Koordianten) nicht. Und da man in der 3D-Programmierung ziemlich großen Gebrauch des Assoziativgesetzes macht, ist es eben wichtig, Translationen (neben Rotationen, Projektionen usw.) auch mit Matrizen darstellen zu können. Der Unterschied liegt hier nämlich darin, dass Verschiebungen eine Addition...
Der letzte Parameter von DrawPrimitive erwartet immer die Anzahl der jeweiligen Primitiven und nicht die Anzahl der Vertizes. Du hast drei Vertizes erstellt, also hast du verschiedene Möglichkeiten: Du kannst daraus mit D3DPT_TRIANGLELIST ein Dreieck zeichnen, dann wäre der letzte Parameter 1 (für ein Dreieck, welches natürlich drei Vertizes braucht). Wenn du jedoch den Typ zu D3DPT_LINELIST änderst, erwartet Direct3D pro Linie zwei Vertizes (jeweils Start- und Endpunkt). Da du nur drei Vertizes...
Es hilft nichts, wenn du die Headerdateien zu deinem Programm dazulegst, da die Einfügung zur Kompilierzeit erfolgt und damit sowieso bereits in der exe vorhanden ist. Was der andere PC braucht, sind die entsprechenden Bibliotheken (*.dll), um dein Programm ausführen zu können. Der Unterschied zwischen den beiden #include-Direktiven besteht einzig und allein darin, dass bei der Variante mit den Anführungszeichen zuerst in deinem Projektverzeichnis gesucht wird. Wurde die Datei dort nicht gefunde...
Du meinst sicherlich ein const char*. Die Funktion die du suchst ist std::string::c_str. Übergib der Funktion, die einen C-String erwartet also einfach text.c_str(), wenn dein std::string z.B. text heißt
C-/C++-Quelltext 1 Werte.Points[10] = 10000000; Dieser Fehler ist immer noch drin. Wenn du wirklich 11 statt 10 Werten speichern willst, musst du das Array auch mit einer entsprechenden Größe anlegen. Außerdem solltest du am besten noch das "using namespace std;" entfernen und stattdessen std::ofstream usw. verwenden.
Ganz genau, also hast du was diese Problematik angeht zwei Möglichkeiten für deine Struktur: C-/C++-Quelltext 1 2 3 4 5 struct m_sWerte { int Points[10]; char Names[10][20]; }; C-/C++-Quelltext 1 2 3 4 5 struct m_sWerte { int Points[10]; std::string Names[10]; }; Letztere Möglichkeit ist in C++ wohl die in den meisten Fällen empfehlenswerte Lösung, insbesondere da du so 10 Zeichenketten im Prinzip beliebiger Länge ablegen und diesen genau so Daten zuweisen kannst, wie du es in deinem ursprünglic...
Ohne jetzt den Quelltext komplett durchgeschaut zu haben, kann ich dir zumindest schon einmal sagen, dass du einige Bereichsüberschreitungen in deinem Code hast: C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 Werte.Points[0] = 6500; Werte.Points[1] = 18000; Werte.Points[2] = 19200; Werte.Points[3] = 31400; Werte.Points[4] = 38000; Werte.Points[5] = 50200; Werte.Points[6] = 61200; Werte.Points[7] = 88700; Werte.Points[8] = 96100; Werte.Points[9] = 142100; Werte.Points[10] = 10000000; // Hier ist ein Fe...