Zum Inhalt springen

Problem beim kompillieren, .exe geht nicht, Fehler aber welcher?


Empfohlene Beiträge

Geschrieben

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 ==========

Geschrieben

  • Du solltest nicht "explizit" in den Code schreiben :rolleyes:
  • 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.

Geschrieben

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 ==========

Geschrieben

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

Geschrieben
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 Bibliotheken
Deswegen 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
Geschrieben

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

Geschrieben
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.

Geschrieben

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!!

Geschrieben
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.

Geschrieben

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?

Geschrieben

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

Geschrieben

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

Geschrieben

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 ;-)

Geschrieben

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]).

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...