BobKiller007 Geschrieben 21. Januar 2009 Autor Geschrieben 21. Januar 2009 Ich habe "statt PlaySound explizit PlaySoundA benutzen" verwendet, da ich nicht genau weiß, wo ich das L setzen soll. Zitieren
Klotzkopp Geschrieben 21. Januar 2009 Geschrieben 21. Januar 2009 Das kann nicht sein, weil sich der Compiler immer noch über PlaySoundW beklagt. Zeig mal den Code. Zitieren
BobKiller007 Geschrieben 21. Januar 2009 Autor Geschrieben 21. Januar 2009 Davor hatte ich das mit dem expizit PlaySoundA versucht, nachdem es nicht ging habe ich es mit PlaySoundW versucht. Und das ist dann wohl die Fehlermeldung davon gewesen. Hier nochmal der jetzige Stand des Codes: #pragma comment( lib, "winmm.lib" ) #include <stdafx.h> #include <windows.h> #include <cstdlib> #include <iostream> #include <stdafx.h> using namespace std; int main(){ int welches; int nochmal; do{ cout << "Was moechten Sie hoeren? Ein fieses Lachen [1] oder einen grausamen Schrei [2] ?: \n"; cin >> welches; switch(welches){ case 1: explizit PlaySoundA("dark.wav", NULL, SND_FILENAME | SND_ASYNC); break; case 2: explizit PlaySoundA("large01.wav", NULL, SND_FILENAME | SND_ASYNC); break; default: cout << "Ungueltige Eingabe!\n"; break; } cout << "Programm neustarten um einen weiteren Sound zu hoeren ? [3=ja, 4=nein]\n"; cin >> nochmal; } while (nochmal==3); return 0; } Und hier die momentane Fehlermeldung die beim Kompillieren eintrifft: 1>------ Erstellen gestartet: Projekt: Abspieler, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>Abspieler.cpp 1>c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\abspieler\abspieler\abspieler.cpp(3) : error C2859: c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\debug\vc90.pdb ist nicht die pdb-Datei, die beim Erstellen dieses vorkompilierten Headers verwendet wurde. Erstellen Sie den vorkompilierten Header neu. 1>c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\abspieler\abspieler\abspieler.cpp(3) : error C2859: c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\debug\vc90.idb ist nicht die idb-Datei, die beim Erstellen dieses vorkompilierten Headers verwendet wurde. Erstellen Sie den vorkompilierten Header neu. 1>c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\abspieler\abspieler\abspieler.cpp(7) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "stdafx.h": No such file or directory 1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\emin\Desktop\Abspieler v0.1\Debug\BuildLog.htm" gespeichert. 1>Abspieler - 3 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== Zitieren
Klotzkopp Geschrieben 21. Januar 2009 Geschrieben 21. Januar 2009 Du solltest nicht "explizit" in den Code schreiben Hast du "Alles neu erstellen" gemacht?#include "stdafx.h" (nicht <stdafx.h>) als erste Zeile (das heißt, dass das Pragma nicht in der ersten Zeile stehen soll). Und dass der Compiler die Datei stdafx.h nicht findet, kann nicht sein, es sei denn, du hast sie zwischenzeitlich gelöscht. In dem hochgeladenen Archiv war sie jedenfalls noch drin. Zitieren
BobKiller007 Geschrieben 21. Januar 2009 Autor Geschrieben 21. Januar 2009 So, ich habs jetzt verändert und diese Fehlermeldung ist der jetzige Stand: 1>------ Erstellen gestartet: Projekt: Abspieler, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>Abspieler.cpp 1>c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\abspieler\abspieler\abspieler.cpp(1) : error C2859: c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\debug\vc90.pdb ist nicht die pdb-Datei, die beim Erstellen dieses vorkompilierten Headers verwendet wurde. Erstellen Sie den vorkompilierten Header neu. 1>c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\abspieler\abspieler\abspieler.cpp(1) : error C2859: c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\debug\vc90.idb ist nicht die idb-Datei, die beim Erstellen dieses vorkompilierten Headers verwendet wurde. Erstellen Sie den vorkompilierten Header neu. 1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\emin\Desktop\Abspieler v0.1\Debug\BuildLog.htm" gespeichert. 1>Abspieler - 2 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== Zitieren
Klotzkopp Geschrieben 22. Januar 2009 Geschrieben 22. Januar 2009 Versuch Nr. 3: Hast du "Alles neu erstellen" gemacht? Das ist ein Menübefehl. Bei der englischen Version heißt er "Rebuild All". Beantworte das bitte, damit ich weiß, ob wir etwas anderes probieren müssen. Zitieren
BobKiller007 Geschrieben 23. Januar 2009 Autor Geschrieben 23. Januar 2009 Das habe ich auch schon gemacht. Die Fehlermeldung ist immernoch die selbe. Was hättest du denn noch für Ideen? Zitieren
Klotzkopp Geschrieben 23. Januar 2009 Geschrieben 23. Januar 2009 Lösch die Datei c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\debug\vc90.pdb. Zitieren
AndiE Geschrieben 23. Januar 2009 Geschrieben 23. Januar 2009 Hallo, ich würde die Zeile mit #pragma" löschen und stattdessen die <mmsystem.h> mit in das System einbinden. Einerseits steht die "lib"-Datei im gleichen Verzeichnis wie die anderen Bibliotheken, andererseits muß das System ja wissen, wo die Protoypen der benutzten Funktionen stehen. Außerdem würde ich bei den anderen include-Direktiven auch den Typ mit angeben. Das nächste Problem ist, daß die Ausgabefunktionen als erstes Argument ein DWORD ( s. Header-Datei) erwarten, das kann in der Ressource-Datei erzeugt werden. Ob das auch bei einer Consolen-Anwendung geht, weiß ich nicht. Viellicht konnte ich helfen. PS: VC++ 6.2 AE Zitieren
Klotzkopp Geschrieben 23. Januar 2009 Geschrieben 23. Januar 2009 ich würde die Zeile mit #pragma" löschen Dann fehlt aber winmm.lib, Linkerfehler sind die Folge. und stattdessen die <mmsystem.h> mit in das System einbinden.Nicht notwendig. Die MSDN Library sagt zu PlaySound: Declared in Mmsystem.h; include Windows.h. Einerseits steht die "lib"-Datei im gleichen Verzeichnis wie die anderen BibliothekenDeswegen wird sie noch lange nicht automatisch gelinkt. andererseits muß das System ja wissen, wo die Protoypen der benutzten Funktionen stehen.Siehe oben. Außerdem würde ich bei den anderen include-Direktiven auch den Typ mit angeben.Was meinst du mit Typ? Die Dateierweiterung ".h"? Die haben die C++-Standardheader nicht. Das nächste Problem ist, daß die Ausgabefunktionen als erstes Argument ein DWORD ( s. Header-Datei) erwarten, das kann in der Ressource-Datei erzeugt werden.Der letzte Parameter von Playsound ist ein DWORD. Das ist nur ein typedef auf unsigned long, nichts weiter. Mit Ressourcedateien hat das nichts zu tun. Die verwendbaren Flags stehen hier: PlaySound Zitieren
BobKiller007 Geschrieben 23. Januar 2009 Autor Geschrieben 23. Januar 2009 So, ich habe die Datei gelöscht und es bewirkt irgendwie nichts. Hier der Screenshot vom gesamten Projekt: http://img515.imageshack.us/img515/6900/fehlerbeimkompillieren0dm4.jpg Und hier nochmal die Fehlermeldung: 1>------ Erstellen gestartet: Projekt: Abspieler, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>Abspieler.cpp 1>c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\abspieler\abspieler\abspieler.cpp(1) : error C2859: c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\debug\vc90.pdb ist nicht die pdb-Datei, die beim Erstellen dieses vorkompilierten Headers verwendet wurde. Erstellen Sie den vorkompilierten Header neu. 1>c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\abspieler\abspieler\abspieler.cpp(1) : error C2859: c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\debug\vc90.idb ist nicht die idb-Datei, die beim Erstellen dieses vorkompilierten Headers verwendet wurde. Erstellen Sie den vorkompilierten Header neu. 1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\emin\Desktop\Abspieler v0.1\Debug\BuildLog.htm" gespeichert. 1>Abspieler - 2 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== Woran könnte das liegen? Braust du noch weitere Screenshorts? MfG Boby Zitieren
Klotzkopp Geschrieben 23. Januar 2009 Geschrieben 23. Januar 2009 So, ich habe die Datei gelöscht und es bewirkt irgendwie nichts.Der Fehlermeldung nach zu urteilen, ist sie immer noch (oder wieder) da. Trifft das zu? Zitieren
Guybrush Threepwood Geschrieben 23. Januar 2009 Geschrieben 23. Januar 2009 änder das #include <stdafx.h> mal in #include "stdafx.h" und nimm den 2. include davon raus Zitieren
BobKiller007 Geschrieben 23. Januar 2009 Autor Geschrieben 23. Januar 2009 Ja, dies trifft zu. Obwohl ich sie gelöscht habe, wurde diese Datei erneut erstellt. Aus welchem Grund auch immer...merkwürdig. Zitieren
Klotzkopp Geschrieben 23. Januar 2009 Geschrieben 23. Januar 2009 Ja, dies trifft zu. Obwohl ich sie gelöscht habe, wurde diese Datei erneut erstellt. Aus welchem Grund auch immer...merkwürdig.Dass die Datei neu erstellt wurde, ist normal. Merkwürdig ist, dass der Compiler seine eigene Datei nicht mag. Der Hinweis von Guybrush Threepwood ist gut. Ich glaube immer noch, dass an deinem System etwas vermurkst ist. Zitieren
BobKiller007 Geschrieben 23. Januar 2009 Autor Geschrieben 23. Januar 2009 Ich habe den Vorschlag von Guybrush Threepwood befolgt, leider hilft selbst dieser nicht. Könnte es auch sein, dass ich an irgendeiner Header-Datei etwas falsch habe? Wollt ihr Screenshots oder den Code sehen? Oder ist das nicht nötig? Hier nochmal die jetzige Fehlermeldung: 1>------ Erstellen gestartet: Projekt: Abspieler, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>Abspieler.cpp 1>c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\abspieler\abspieler\abspieler.cpp(1) : error C2859: c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\debug\vc90.pdb ist nicht die pdb-Datei, die beim Erstellen dieses vorkompilierten Headers verwendet wurde. Erstellen Sie den vorkompilierten Header neu. 1>c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\abspieler\abspieler\abspieler.cpp(1) : error C2859: c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\debug\vc90.idb ist nicht die idb-Datei, die beim Erstellen dieses vorkompilierten Headers verwendet wurde. Erstellen Sie den vorkompilierten Header neu. 1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\emin\Desktop\Abspieler v0.1\Debug\BuildLog.htm" gespeichert. 1>Abspieler - 2 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== Ich hatte das gesamt Projekt doch mal hochgeladen. Funktioniert das bei euch? Oder könnte einer von euch mal das funktionfähige hochladen? Vielleicht liegt es ja wirklich an meinem System, was ich jedoch bezweifel. Danke für die vielen Bemühungen!! Zitieren
Guybrush Threepwood Geschrieben 23. Januar 2009 Geschrieben 23. Januar 2009 Hast du nur die eine Datei gelöscht oder den kompletten Debug Ordner? Zitieren
BobKiller007 Geschrieben 23. Januar 2009 Autor Geschrieben 23. Januar 2009 Hast du nur die eine Datei gelöscht oder den kompletten Debug Ordner? Ich habe nur die Datei gelöscht. Als es nicht ging, bin ich nochmal in den Debug Ordner gegangen und habe gesehen, dass zwei Datein vc90 heißen, also habe ideses mal beide gelöscht und es erneut versucht. Es bringt alles nichts, der Ordner Debug existiert noch. Zitieren
AndiE Geschrieben 23. Januar 2009 Geschrieben 23. Januar 2009 Auszug aus der Hilfe vob VC++6.2 AE zur Verwendung der Option "/YX" Erstellt die Datei Projekt.PCH, falls diese noch nicht existiert, und kompiliert nur Header-Dateien (.H) in diese .PCH-Datei. Wenn kein Projekt geöffnet ist, wird die Datei VC50.PCH erstellt. Das Einbeziehen von .H-Dateien wird beendet, sobald der Compiler auf eine Deklaration, eine Definition, ein hdrstop-Pragma oder eine #line-Direktive in der mit der Option kompilierten Quelltextdatei stößt, oder nach der im Textfeld Durch Header angegebenen .H-Datei. Bei nachfolgenden Kompilierungen wird die PCH verwendet, nachdem der Compiler seine letzten Konsistenzprüfungen gemacht hat. Siehe Konsistenzregeln für /YX. " und weiter zu /YX" Diese Option weist den Compiler an, eine vorkompilierte Header-Datei (PCH) zu verwenden, sofern eine existiert, oder andernfalls eine zu erstellen. Die Datei wird im aktuellen Verzeichnis erstellt. Sie können die Option /Fp verwenden, um den Standardnamen und den Standort des vorkompilierten Headers zu ändern. (Sie finden diese Option in der Entwicklungsumgebung, wenn Sie im Menü Projekt auf Einstellungen klicken. Klicken Sie dann auf die Registerkarte C/C++ und im Feld Kategorie auf Vorkompilierte Header.) Kann es deshalb sein, daß kein Projekt erstellt worden ist? Zitieren
BobKiller007 Geschrieben 23. Januar 2009 Autor Geschrieben 23. Januar 2009 Ich hatte das alles schon als Projekt, aber ich kann ja mal versuchen, ein komplett neues Projekt zu erstellen und darein die Codes einfach einzufügen. Dann wähle ich einfach noch einen anderen Speicherort. Win32-Konsolenanwendung ist die richtige oder? Oder kann ich da auch noch einen anderen nehmen? MfG Boby Zitieren
BobKiller007 Geschrieben 23. Januar 2009 Autor Geschrieben 23. Januar 2009 So, ich habe ein komplett neues Programm erstellt. Von zwei Fehlern ist die Meldung nun auf einen Fehler gesunken. Hier der Quellcode: // Projekt_Wiedergeber.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung. // #include "stdafx.h" #include <windows.h> #include <cstdlib> #include <iostream> #pragma comment( lib, "winmm.lib" ) int _tmain(int argc, _TCHAR* argv[]) using namespace std; int main(){ int welches; int nochmal; do{ cout << "Was moechten Sie hoeren? Ein fieses Lachen [1] oder einen grausamen Schrei [2] ?: \n"; cin >> welches; switch(welches){ case 1: PlaySoundA("dark.wav", NULL, SND_FILENAME | SND_ASYNC); break; case 2: PlaySoundA("large01.wav", NULL, SND_FILENAME | SND_ASYNC); break; default: cout << "Ungueltige Eingabe!\n"; break; } cout << "Programm neustarten um einen weiteren Sound zu hoeren ? [3=ja, 4=nein]\n"; cin >> nochmal; } while (nochmal==3); return 0; } Hier die Fehlermeldung: 1>------ Erstellen gestartet: Projekt: Projekt_Wiedergeber, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>Projekt_Wiedergeber.cpp 1>c:\dokumente und einstellungen\emin\desktop\wiedergeber\projekt_wiedergeber\projekt_wiedergeber\projekt_wiedergeber.cpp(12) : error C2143: Syntaxfehler: Es fehlt ';' vor 'using' 1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\emin\Desktop\Wiedergeber\Projekt_Wiedergeber\Projekt_Wiedergeber\Debug\BuildLog.htm" gespeichert. 1>Projekt_Wiedergeber - 1 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== Währ nett, wenn ihr mir nochmal weiterhelfen könntet! MfG Boby Zitieren
Klotzkopp Geschrieben 23. Januar 2009 Geschrieben 23. Januar 2009 int _tmain(int argc, _TCHAR* argv[]) Diese Zeile muss weg. Zitieren
BobKiller007 Geschrieben 23. Januar 2009 Autor Geschrieben 23. Januar 2009 So, das Programm funzt super! So, wie nach meinen Vorstellungen! Vielen, vielen Danke Klotzkopp, dass du dich ständig bemüht hast, mir weiterzuhelfen! Echt klasse von dir! Dankeschön! Und dir auch vielen Dank Guybrush Threepwood! Grüße Boby ;-) Zitieren
AndiE Geschrieben 24. Januar 2009 Geschrieben 24. Januar 2009 Hallo, freut mich für dich. Eins ist bei dem Programm bemerkenswert. Playsound erwartet als erstes Argument einen Pointer auf einen Nullterminierten String. Und den hat er sich aus der Dateiangabe selbst hergestellt. Das vergesse ich immer wieder, das das geht. Wenn ich "char puffer [100]" deklariere, dann erhalte ich bei "puffer" die Adresse des ersten Arrayelementes( &puffer[0]). Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.