[OT]
C++ Core schrieb:
Es gibt viele Programme, die MFC sind!
z.B. Nero (oh, ja! Nero ist MFC!!!)
Und?? Was sagt das über die Qualität aus?
Es gibt auch viele Programme, die goto verwenden (mal von denen abgesehen, wo es richtig und wissentlich eingesetzt wird).
Man muss nur wissen wie es geht, dann kann man sogut wie jedes Programm programmieren!
Das trifft ja wohl auf das Programmieren an sich zu. Allerdings kannst du mit MFC alleine sicherlich nicht sogut wie jedes Programm programmieren.
[/OT]
Dieser Thread wurde von Moderator/in flenders aus dem Forum WinAPI in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
also, wenn du richtig, richtig faul bist (so wie ich), dann fertigst du dir ein set an wavefiles, suchst in google nach "playwav.exe" (kleine cmdline win-exe, startet man einfach mit nem wavefile als parameter), und bindest diese per system() in dein programm ein...
Anstatt die 48 schreibt man '0', dann weiß auch jemand, der nicht die ASCII-Tabelle in- und auswendig kennt, was gemacht wird. Zahlen sind einfach unübersichtlich in solch einem Fall und die Leute, die später einmal euren Quellcode lesen müssen, werden es euch danken, wenn anstatt 48 '0' dasteht.
Generell ist es möglich, ABER das hängt von vielen Faktoren ab. Am besten ist es, wenn du dir erstmal eine Dokumentation über dein Modem besorgst, die auch die AT-Befehle enthält.
Wenn du Glück hast, besitzt dein Modem einen Befehl die anrufende Nummer zurückzuliefern, dann kommt es aber auch noch drauf an, ob dir die anrufende Nummer generell übermittelt wird (beim Telefonanbieter nachfragen) und natürlich ob der Anrufer überhaupt die Nummer übermittelt (dagegen kannst du aber sowieso nichts machen ;)).
Also wenn es das ist, was ich meine das es ist, dann musst nicht den Interrupt aufrufen, sondern den Code für den betroffenen Interrupt schreiben. Auf was du unbedingt dabei achten musst, ist dass du den Code der zuvor dafür gesetzt wurde auch ausgeführt wird. Und du musst am Ende deines Programms das auch wieder zurücksetzen!
Kurz gesagt:
Du brauchst eine Funktion, die deine 10kHz erzeugen und die den Code, der bisher vom betroffenen Interrupt ausgeführt wurde auch ausführt (d. h. die Codestelle aufruft; klingt komplizierter als es ist ;)).
Im eigentlichen Programm musst du dir die Adresse des bisherigen Codes des Interrupts merken. Danach musst du den Aufruf umändern auf deine eigene Funktion.
Am Ende deines Programms musst du das natürlich wieder rückgängig machen, ansonsten wird sich dein System sehr schnell aufhängen (was noch das unkritischste ist) und ein Neustart ist nötig.
Bei der ganzen Sache musst du also sehr gut aufpassen was du machst und teste am besten zuerst auf einem Testsystem, ob es fehlerfrei läuft.
Ne Alternative wäre sprintf().
Allerdings glaube ich nicht, dass es an der Funktion an sich liegt. Kannst du mal den Codeausschnitt zeigen, der betroffen ist, wo du also deine long double Variablen in Strings umwandelst.
jap. es hat nicht funktioniert weil,
cci.dwSize nicht auf einen Wert zwischen 1 und 100 gesetzt wurde.
aber mit dem Hinzufügen von
cci.dwSize = 1;
klappts