-
Gesamte Inhalte
9912 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
3
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von Klotzkopp
-
Wie wär's mit XML? Das Dateiformat ist portabel, und Parserbibliotheken gibt's auch wie Sand am Meer
-
Dann hast du streng genommen keine INI-Datei mehr, denn das Dateiformat schreibt AFAIK vor, dass die Feldnamen innerhalb eines Schlüssels eindeutig sind. Damit werden die API-Funktionen wahrscheinlich nicht zurechtkommen.
-
@FinalFantasy: Bitte beim nächten Mal beachten: Ein Thread - ein Thema, ein Thema - ein Thread. Wenn du drei unterschiedliche Fragen in einem Thread stellst, erschwerst du Anderen, Lösungen über die Suchfunktion zu finden. Ich werde den Thread aufteilen und die Betreffs anpassen
-
Zu X.25 kann ich dir zwar nicht weiterhelfen, um aber erst mal mit der ISDN-Karte Kontakt aufzunehmen, kannst du CAPI verwenden. Weitere Informationen zu CAPI kannst du z.B. hier finden. Auf der AVM-Homepage gibt es laut Auskunft eines Kollegen auch Beispielcode.
-
Da ich nicht erkennen kann, was das mit C++ zu tun hat: :confused: Verschoben nach: Windows Betriebssysteme
-
Man muss hier zwischen physischem und virtuellem Speicher unterscheiden. Soweit ich weiß, versuchen solche Tools, längere Zeit nicht benötigte Seiten in die Auslagerungsdatei zu verschieben, so dass wieder Seiten im physischem Speicher verfügbar sind. Wirklich "freigegeben" wird da nichts. Das verlinkte Tool tut eigentlich nicht viel mehr, als große Mengen Speicher zu reservieren. Dadurch werden ungenutzte Seiten anderer Prozesse auf die Festplatte ausgelagert. Dann gibt das Tool den angeforderten Speicher wieder frei, die ausgelagerten Seiten bleiben aber ausgelagert, solange nicht auf sie zugegriffen werden muss. Dadurch ist hinterher mehr physischer Speicher frei - der benutzte virtuelle Speicher hat sich natürlich nicht verändert. Diese Tools sind eigentlich nur unter Windows 9X sinnvoll, weil dort die Speicherverwaltung nicht besonders gut darin ist, die richtigen Seiten zu Auslagern zu finden. Die Speicherverwaltung von Windows 2000 und XP ist besser, was effektives Auslagern angeht.
-
Wenn ein Prozess unter Windows beendet wird, dann sorgt das Betriebssystem dafür, dass belegte Ressourcen (virtueller Speicher, Handles usw.) wieder freigegeben werden. Selbst wenn also das Progamm Speicherlecks enthält, die den Speicherverbrauch während der Laufzeit anwachsen lassen: Beim Beenden räumt Windows auf.
-
Nein. Eines der wichtigsten Dinge, wenn Fehler behoben werden sollen, ist eine möglichst präzise Fehlerbeschreibung. Und ich glaube nicht, dass du eine Messagebox mit dem Inhalt "Programm ist abgekachelt" und einem OK-Button zu sehen bekommst. Nur weil dir die zusätzlichen Informationen in der Fehlermeldung nichts sagen, muss das ja nicht bei allen hier im Forum so sein. Bist du das Programm schon mal Schritt für Schritt mit dem Debugger durchgegangen? Wie gesagt, das, was du mit "usw." abhandelst, kann uns helfen, den Fehler einzukreisen. Zeig uns doch z.B. mal den Code dieser Konvertierung. P.S.: Thread verschoben nach C++: Compiler, IDEs, APIs.
-
Update: Die Inhalte der FAQ haben den letzten Boardumzug leider nicht überlebt. Ich möchte Euch an dieser Stelle Gelegenheit geben, Eure Meinung über eine Wiedereinführung der FAQ zu äußern. Haltet Ihr eine Wiedereinführung der C/C++-FAQ für sinnvoll? Falls ja, warum? Falls nicht, warum nicht?
-
Beispiel zum DDE Aufruf gesucht
Klotzkopp antwortete auf MeisterB's Thema in C++: Compiler, IDEs, APIs
msg.message ist dann WM_DDE_ACK. -
Beispiel zum DDE Aufruf gesucht
Klotzkopp antwortete auf MeisterB's Thema in C++: Compiler, IDEs, APIs
atomApplication und atomTopic müssen irgendwo vorher als ATOM deklariert werden. Dieser Typ sollte duch windows.h vorhanden sein. Die WM_DDE_ACK-Nachricht erhältst du ganz normal in deiner Nachrichtenschleife. -
@Guybrush Threepwood: Dein Beispiel ist AFAIK ein logischer Fehler. Ein semantischer Fehler wäre etwas, was zwar syntaktisch korrekt ist, aber im Zusammenhang, wenn man die Bedeutung der Bezeichner und Operatoren berücksichtigt, falsch ist. Zwei Beispiele in C++: a = b + c; Das ist syntaktisch korrekt, aber wenn b und c Zeiger sind, semantisch falsch, weil man zwei Zeiger nicht addieren kann. a = b(); Das ist auch syntaktisch richtig. Wenn b aber weder eine Funktion noch eine Instanz einer Klasse mit operator() ist (sondern z.B. nur ein einfacher int), geht das trotzdem nicht. Der Compiler kann solche Fehler durchaus finden.
-
Beispiel zum DDE Aufruf gesucht
Klotzkopp antwortete auf MeisterB's Thema in C++: Compiler, IDEs, APIs
DDE steht für Dynamic Data Exchange. Es handelt sich dabei um einen IPC-Mechanismus, also einen Mechanismus, mit dem zwei Anwendungen Daten austauschen können. Die MSDN Library ist da eigentlich recht ausführlich: http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/dataexchange/dynamicdataexchange.asp -
Tastatureingabe in DLL lesen
Klotzkopp antwortete auf Guybrush Threepwood's Thema in C++: Compiler, IDEs, APIs
Dieser Fehler bedeutet, dass der Stackpointer nach einem Funktionsaufruf nicht mehr dorthin zeigt, wo er vor dem Aufruf hinzeigte. Das kann gravierende Folgen haben. Die mit Abstand häufigste Ursache dafür ist, dass eine Funktion (z.B. in einer DLL) mit einer anderen Calling Convention aufgerufen wird, als sie kompiliert wurde. Die Calling Convention legt - grob gesagt - fest, wie beim Aufruf die Argumente übergeben werden, und wer hinterher den Stack wieder aufräumt. Eine bestimmte Calling Convention ist in jedem VC-Projekt per Default festgelegt. Wenn die DLL einen anderen Standard benutzt als die benutzende EXE, kann es zu diesem Fehler kommen. Meist reicht es, die Calling Convention der exportierten Funktion einfach festzulegen, indem man __stdcall oder __cdecl zwischen Rückgabetyp und Name schreibt. Siehe auch: http://msdn.microsoft.com/library/en-us/vccelng/htm/msmod_5.asp -
So etwas Ähnliches. Du hast einen Ganzzahltyp (nämlich int) verwendet. Ein int kann nur ganze Zahlen aufnehmen, daher werden Nachkommastellen abgeschnitten. Genauer gesagt ist es sogar so, dass bei einer Division eines int durch einen andere Ganzzahl (wie in deinem Fall das Literal 2) gar keine Nachkommastellen entstehen, weil eine sogenannte Ganzzahldivision durchgeführt wird. Wenn du dann 0.5 subtrahierst, wird, um das Ergebnis der Subtraktion aufzunehmen, eine temporäre Variable vom Typ double erstellt. Das ist ein Fließkommatyp, der auch Werte mit Nachkommastellen - wenn auch mit beschränkter Genauigkeit - aufnehmen kann. Das macht der Compiler automatisch, weil er erkennt, dass einer der beiden Operanden (nämlich das Literal 0.5) kein Ganzzahltyp sein kann. Danach weist du dieses Ergebnis aber wieder einem int zu, mit dem Resultat, dass wieder in einen Ganzzahltyp konvertiert wird. Dabei werden - wie oben beschrieben - alle Nachkommastellen abgeschnitten. Dein - 0.5 wirkt also wie ein - 1.
-
Dann entwickelst du zufälligerweise auf einer Plattform und mit einem Compiler, bei dem das so funktioniert. Laut Standard ist das Verhalten von fflush auf Eingabeströme (zu denen auch stdin zählt), undefiniert. Bei einem anderen Compiler oder auf einem anderen BS kann dir das um die Ohren fliegen (oder einfach gar nichts tun).
-
@Daiana: Vier Fehler sind mir aufgefallen: Erstens initialisierst du dein Array nicht mit Nullen, füllst aber auch nicht unbedingt alle Stellen. Eins von beidem solltest du tun. Zweitens sollte es bei else if (dezahl =1) ein == sein. Drittens musst du die Ausgabe auch in eine Schleife (z.B. eine for-Schleife) verpacken. Du gibst nur eine Zahl aus, noch dazu mit ungültigem Index (8). Viertens muss du zum Abziehen von 0,5 einen Dezimalpunkt benutzen, kein Komma. @Master Z: fflush(stdin) bewirkt undefiniertes Verhalten.
-
Schließen eins Programmes über WinAPI
Klotzkopp antwortete auf Welenreiter's Thema in C++: Compiler, IDEs, APIs
Gibt es WM_CLICK überhaupt? IIRC heißt die Nachricht BM_CLICK... -
Tastatureingabe in DLL lesen
Klotzkopp antwortete auf Guybrush Threepwood's Thema in C++: Compiler, IDEs, APIs
Du könntest auch ein Feld im Shared-Segment anlegen und bei Aufruf einer DLL-Funktion dessen Inhalt in einen übergebenen Puffer kopieren. -
Schließen eins Programmes über WinAPI
Klotzkopp antwortete auf Welenreiter's Thema in C++: Compiler, IDEs, APIs
Wenn man sich die Zeitspanne zwischen den Beiträgen ansieht, hast du nicht versucht, dir diese Information selbst zu beschaffen. Im Allgemeinen erhöht sich die Hilfsbereitschaft der Anderen, wenn man ein wenig Eigenleistung erkennen lässt. Ich helfe dir gern bei Problemen, aber für so was habe ich keine Zeit. -
Schließen eins Programmes über WinAPI
Klotzkopp antwortete auf Welenreiter's Thema in C++: Compiler, IDEs, APIs
Indem du SendMessage als ersten Parameter das Fensterhandle des Word-Fensters übergibst. Das musst du natürlich erst mal mit FindWindow(Ex) rausfinden. Der zweite Parameter muss WM_CLOSE sein, nicht "WM_Close". Außerdem sieht das nicht nach einem Aufruf aus. -
Hast du meinen Nachtrag gelesen?
-
Schließen eins Programmes über WinAPI
Klotzkopp antwortete auf Welenreiter's Thema in C++: Compiler, IDEs, APIs
Das verstehe ich nicht. Was bringt dir ein genaues C++-Beispiel, wenn du gar keinen C++-Code hast? -
Schließen eins Programmes über WinAPI
Klotzkopp antwortete auf Welenreiter's Thema in C++: Compiler, IDEs, APIs
"Funktioniert nicht" ist keine Fehlerbeschreibung. Zeig uns deinen Code, und sag genau, was nicht funktioniert (Compilerfehler, Laufzeitfehler, etc). -
Ich nicht. Bist du dir ganz sicher, dass es den gibt? Kannst du ein paar Textstellen aus der SDK-Dokumentation zitieren? Dann könnte ich effektiver suchen. Nachtrag: Quelle: google groups link