Zum Inhalt springen

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


Empfohlene Beiträge

Geschrieben

Hallo alle miteinander,

ich habe ein Problem: Ich habe in Dev-C++ ein Programm geschrieben, welches jedoch nicht funktioniert, da Dev-C++ extrem verbugt ist und ständig abstürzt. Also habe ich mir Microsoft Visual C++ 2008 Express Edition geholt. Jedoch gibt es irgendein Problem beim Kompillieren, den ich nicht verstehe. Wenn ich die .exe-Datei öffne, kommt diese hier:

http://img129.imageshack.us/img129/9048/dieexedateigehtnichtuh9.jpg

Hier nochmal der Programmiercode:

#include <windows.h>

#include <cstdlib>

#include <iostream>

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:

PlaySound("dark.wav", NULL, SND_FILENAME | SND_ASYNC);

break;

case 2:

PlaySound("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;

}

Könnte mir jemand von euch helfen? Währ ganz nett von euch!

Bitte Bescheid sagen, falls noch mehr Screenshorts nötig sind!

Danke im voraus!

MfG

Boby

Geschrieben

Aber was meinst du mit "System neuaufsetzen"?

format c:\

:D

Er meint damit, dass du auf deinem PC alles löschen und danach neu installieren sollst. Denn wenn ein Trojaner da ist, gibts es vermutlich noch mehr.

Geschrieben

Ich verstehe nicht, warum da das 16-Bit-Subsystem angeworfen wird. Weder die Eingabeaufforderung (cmd.exe) noch dein Programm sind 16 Bit. Visual C++ 2008 kann gar keine 16-Bit-Programme erstellen.

Durchsuch bitte mal alle Festplatten nach einer Datei names cmd.com.

Geschrieben

kommentiere doch bitte mal die zwei zeilen mit PlaySound aus, kompiliere das binary nochmals, und führe es aus.

entweder hats da irgendwas, dass die library, in der PlaySound verdrahtet ist, über die NTVDM gestartet wird, oder dein system ist komplett hinüber. hattest du mal einen 16-bit-compiler auf der kiste?

s'Amstel

Geschrieben

Ich weiß ehrlich nicht, woran es liegen könnte. Ich habe alles mögliche versucht, was mir eingefallen ist, da ich noch ein C++ Newbie bin, gabs da auch nicht so große Auswahl.

Ich habe das Programm mit allen Codes und dazugehörigen Sounds hochgeladen.

Könntet ihr es euch bitte angucken und wenn nötig umprogrammieren? Ich weiß nämlich nicht mehr weiter.

Währ echt nett von euch!

Hier der Donwload-Link:

RapidShare Webhosting + Webspace

MfG

Boby

Geschrieben

Das Programm in dem Archiv wurde zwar mit Visual C++ 2008 erstellt, aber nicht aus diesem Quellcode. Es tut bei mir gar nichts, sondern beendet sich gleich wieder. Insbesondere benutzt dieses Programm nicht PlaySound, weil es nicht von WINMM.DLL abhängt.

Der Quellcode hingegen ist mit diesen Projekteinstellungen gar nicht kompilierbar.

Wenn man die Fehler behebt (vorkompilierte Header, fehlende Library, Wide Character Strings für PlaySound), lässt sich das Programm kompilieren. Wenn man dann noch die Sounddateien ins passende Verzeichnis steckt, funktioniert es.

Woher bei dir die Fehlermeldung beim Ausführen kommt, kann ich mir nicht erklären. Ich fürchte aber, an deinem System ist etwas vermurkst.

Geschrieben

Hallöchen,

ich glaube jetzt weniger, dass es an meinem System lag.

Inzwischen kommt diese Fehlermeldung bei mir nicht mehr. Ich hatte irgendetwas verändert und seit dem kommt diese Meldung nicht mehr. Genau wie du es beschrieben hast ist's bei mir momentan auch, also das Programm öffnet sich und innerhalb von einer Sekunde (oder auch weniger^^) schließt es sich wieder.

Damit das Programm von WINMM.DLL abhängt, muss ich es doch im Linker so einstellen oder?

Wie gesagt, ich bin noch ein C++ Newbie und weiß wenig darüber. Ich glaube, dass dieses Programm, bzw. die Idee dieses Programms zu schwer für mich ist.

Könntest du nicht einen Beispiel Code geben, wie mein Header aussehen sollte?

MfG

Boby

Geschrieben
Genau wie du es beschrieben hast ist's bei mir momentan auch, also das Programm öffnet sich und innerhalb von einer Sekunde (oder auch weniger^^) schließt es sich wieder.

Solange du das Programm gar nicht mehr neu erstellen kannst, ist es egal, was irgendeine alte Version macht, die noch im Debug-Ordner rumliegt. Wenn dein Projekt nicht gebaut werden kann, wird sich daran nichts ändern.

Am Code ist eigentlich gar nicht viel falsch.

Du hast in den Projekteinstellungen die Verwendung vorkompilierter Header und Unicode aktiviert, bzw. das ist die Vorgabe, wenn du kein leeres Projekt erstellst.

Wegen der vorkompilierten Header musst du entweder die Projekteinstellungen ändern oder als erste Zeile

#include "stdafx.h"
in deinen Code schreiben. Außerdem musst du eines dieser drei machen:
  • in den Projekteinstellungen von Unicode auf Multi-Byte stellen
  • vor die Stringparameter von PlaySound ein L stellen
  • statt PlaySound explizit PlaySoundA benutzen
Und schließlich musst du noch entweder in den Linkereinstellungen winmm.lib angeben, oder das in den Code schreiben:
#pragma comment( lib, "winmm.lib" )

Dann sollte das laufen.

Geschrieben

Hallo Klotzkopp,

ich habe gemacht was du beschrieben hast, das Programm funktioniert jedoch immernoch nicht. Von 12 Fehlern und 3 Warnungen ist er auf 4 Fehler und 0 Warnungen gesunken.

Fällt dir vielleicht noch etwas ein was man machen könnte?

Dies kommt raus, wenn ich das Debugging starte:

"Abspieler.exe": "C:\Dokumente und Einstellungen\emin\Desktop\Abspieler v0.1\Abspieler\Debug\Abspieler.exe" wurde geladen

"Abspieler.exe": "C:\WINDOWS\system32\ntdll.dll" wurde geladen

"Abspieler.exe": "C:\WINDOWS\system32\kernel32.dll" wurde geladen

"Abspieler.exe": "C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_f863c71f\msvcr90d.dll" wurde geladen

Das Programm "[736] Abspieler.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.

MfG

Boby

Geschrieben

Achso,

also wenn ich das Kompillieren starte kommt dies hier:

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>c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\abspieler\abspieler\abspieler.cpp(21) : error C2664: 'PlaySoundW': Konvertierung des Parameters 1 von 'const char [9]' in 'LPCWSTR' nicht möglich

1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.

1>c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\abspieler\abspieler\abspieler.cpp(24) : error C2664: 'PlaySoundW': Konvertierung des Parameters 1 von 'const char [12]' in 'LPCWSTR' nicht möglich

1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.

1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\emin\Desktop\Abspieler v0.1\Debug\BuildLog.htm" gespeichert.

1>Abspieler - 4 Fehler, 0 Warnung(en)

========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

MfG

Boby

Geschrieben

Die ersten Fehler solltest du durch "Alles neu erstellen" / "Rebuild All" beseitigen können. Die anderen deuten darauf hin, dass du nicht alles umgesetzt hast, was ich geschrieben hatte.

Welches dieser drei:

-in den Projekteinstellungen von Unicode auf Multi-Byte stellen

-vor die Stringparameter von PlaySound ein L stellen

-statt PlaySound explizit PlaySoundA benutzen

hast du denn gemacht?

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