Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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

CLR-Konsolenanwendung. Davor habe ich es mit Win32-Konsolenanwendung versucht, aber das geht auch nicht.

MfG

Boby

Solch eine Datei habe ich da nicht. Ich habe mal den Ordner "system32" gegen Viren überpfrüfen lassen und es wurde nichts gefunden.

Aber was meinst du mit "System neuaufsetzen"?

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.

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.

So,

ich habe alle Fesplatten nach dieser Datei durchsucht und nichts gefunden.

Woran könnte es noch liegen?

Habt ihr Ideen?

Braucht ihr irgendwelche Screenshots?

Ich habe das Projekt neu angelegt und dann den Quellcode geschrieben. Dann habe ich es abgespeichert und Kompilliert.

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

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

Nein, einen 16 Bit-Compiler habe ich nicht. Aber es könnte auch an den Bugs von Dev-C++ liegen oder?

Bitte ladet euch mal die Datei vom obigen Link runter.

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.

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

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.

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

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

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?

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.