Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

BK Simon

Treue Seele

  • »BK Simon« ist der Autor dieses Themas

Beiträge: 151

Beruf: Student

  • Private Nachricht senden

1

15.10.2012, 07:30

Die exe-Datei richtig an Freunde ohne Visual Studio senden | Part 2

Einen wunderschönen guten Morgen, Mittag, Abend,

heute wollte ich meine neuste Version meines Snake - Games an ein paar meiner Freunde schicken, damit sie es testen können.
Leider war dies nicht von Erfolg gekrönt, da wieder eine Fehlermeldung beim Starten der .exe erschien.

Die Fehlermeldung lautete: Die Anwendung konnte nicht korrekt gestartet werden (0xc000007b).

Folgendermaßen bin ich vorgegangen um das Problem zu beheben:
Ich habe es insgesamt an 3 Personen getestet

1. Freund:
Zuerst habe ich die .exe - Datei aus dem Release Ordner mit den 2 zugehörigen .dll Dateien, die ich auch beim letzten Mal an einen Freund geschickt habe und es funktioniert hat (3. Freund), und einer kleinen readme.txt in einen .zip Ordner gepackt und an einen Freund geschickt.
Dieser hat den Ordner entpackt die .exe gestartet und die oben genannte Fehlermeldung erschien.

Zuerst habe ich ihm die Seite aus dem letzten Thread von Yannic gelinkt ( http://www.microsoft.com/en-us/download/…s.aspx?id=30679 ) und dort hat er die "vcredist_x64.exe" runtergeladen.
Leider erschien die Fehlermeldung immernoch.
Anschließend habe ich ein bisschen gegoogelt und 2 weitere mögliche Fehlerquellen gefunden.
Einmal wurde ein Zusammenhang mit der fehlenden NetFramework erwähnt, doch die hatte er schon installiert.
Die 2. mögliche Fehlerquelle war eine nicht vorhandenes SP1 von Windows doch dieses war auch schon vorhanden.

2. Freund:
Da ich dachte, dass mein 1. Freund vllt. nur irgendwo einen Softwarefehler hat, habe ich es mit einem anderen Freund ausprobiert.
Ihm habe ich wieder den oben beschriebenen .zip Ordner geschickt. Er hat ihn entpackt und die .exe ausgeführt, aber die gleiche Fehlermeldung erschien.

Habe ihn alles nochmal löschen lassen und habe ihm anschließend die .exe - Datei und die 2 .dlls einzelnd ohne .zip - Ordner geschickt doch dies brachte leider auch keinen Erfolg.

3. Freund:
Da es bei Freund 3 schonmal geklappt hat, als ich den letzten Thread eröffnet habe, wollte ich es nochmal bei ihm ausprobieren.
Also habe ich ihm den .zip - Ordner geschickt entpacken und ausführen lassen, doch verwundert musste ich feststellen, dass es nun bei ihm auch nicht mehr funktionierte, da die oben genannte Fehlermeldung auch beim ihm erschien.

Da dachte ich, nun kann es nurnoch daran liegen, dass ich irgendetwas so am Quellcode verändert habe, dass es nicht mehr funktioniert, obwohl ich jediglich eine neue Funktion geschrieben habe und Kleinigkeiten ausgebessert habe.
Deswegen habe ich fix ein neues Projekt erstellt mit einer simplen "Hello World" Ausgabe, habe diese als Release kompiliert und ihm geschickt.
Erneut erschien die Fehlermeldung.
Anschließend habe ich das "Hello World" Programm als Debug kompiliert und ihm geschickt.
Diesmal kam eine Fehlermeldung, die nach einer .dll - Datei fragte.
Diese Fehlermeldung kam 3-Mal nacheinander mit verschiedenen .dll Dateien und ich habe ihm alle 3 .dlls geschickt und anschließend funktionierte es und die .exe wurde gestartet.

Ich dachte, dass ich jetzt eine Möglichkeit gefunden habe dem eigentlich Fehler aus dem Weg zu gehen und habe auch Freund 2 die Debug .exe mit den 3 dazugehörigen .dlls geschickt,
doch leider kam bei ihm wieder die Fehlermeldung von ganz oben und nun weiß ich auch nicht mehr weiter.

Jetzt noch ein paar Informationen:
Mein Betriebssystem: Windows 7 64 -Bit
IDE: Visual Studio 2012 Ultimate

Betriebssystem aller meiner Freunde: Windows 7 64 -Bit
1. und 2. Freund haben Visual Studio 2010.
3. Freund hat kein Visual Studio

Namen der .dll Datei der Release - exe:
msvcp110.dll
msvcr110.dll

Namen der .dll Datei der Debug- exe:
msvcp110.dll
msvcp110d.dll
msvcr110d.dll

Link vom alten Thread:
Die exe-Datei richtig an Freunde ohne Visual Studio senden

Ich hoffe, dass mir jemand helfen kann :)

Gruß
Simon

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

15.10.2012, 08:31

Side-by-side-assemblies wurden ja schon in Deinem letzten Thread angesprochen.
Also linke entweder statisch oder lass sie die VC-Runtime installieren. Alles andere führt eben eventuell zu solchen Problemen - falls es nicht ganz simpel nur ein Bug in Deinem Programm selbst sein sollte.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueCobold« (15.10.2012, 09:37)


3

15.10.2012, 08:55

Ansonsten vielleicht beim Kumpel auch mal mit Dependency Walker gucken, was da wirklich geladen wird (und das mit dem vergleichen, was bei dir geladen wird).
Lieber dumm fragen, als dumm bleiben!

BK Simon

Treue Seele

  • »BK Simon« ist der Autor dieses Themas

Beiträge: 151

Beruf: Student

  • Private Nachricht senden

4

15.10.2012, 14:44

@BlueCobold:
Das mit den Side-by-side-assemblies werde ich auch mal versuchen und schaun ob es funktioniert.
Ich soll sie die VC - Runtime installieren lassen, aber habe ich das nicht schon mit der Datei "vcredist_x64.exe" auf der Seite http://www.microsoft.com/en-us/download/…s.aspx?id=30679 bei Freund 1 gemacht ?
Oder ist das doch etwas anderes ?

@Jonathan_Klein:
Alles klar werde ich aufjedenfall auch mal mit nachschaun.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

15.10.2012, 15:41

"vcredist_x64.exe" sind die 64-Bit-Laufzeitbibliotheken.
Die brauchst du nur, wenn dein Programm ein 64-Bit-Programm ist (nicht das Betriebssystem).
Wenn du nicht weißt, ob dein Programm 32- oder 64-Bit ist, dann gehe davon aus, dass es 32-Bit ist.
Dementsprechend brauchst du die "vcredist_x86.exe"!

BK Simon

Treue Seele

  • »BK Simon« ist der Autor dieses Themas

Beiträge: 151

Beruf: Student

  • Private Nachricht senden

6

15.10.2012, 15:43

@David Scherfgen:
Alles klar, danke für die kurze Erklärung, werde es ausprobieren sobald einer von ihnen online ist :)

Edit:
Mit deiner Vermutung lagst du richtig. Habe die .exe ausgeführt und im Task-Managar nachgeschaut und dort steht auch *32.

BK Simon

Treue Seele

  • »BK Simon« ist der Autor dieses Themas

Beiträge: 151

Beruf: Student

  • Private Nachricht senden

7

17.10.2012, 00:49

So um das Thema endlich zu beenden, habe ich es nun bei noch ein paar weiteren Freunden probiert und nun funktioniert es einwandfrei.

Ich habe jetzt eine Ordner in dem folgendes drinne ist:
msvcp110.dll
msvcr110.dll
readme.txt
Snake 2012.exe
vcredist_x86.exe
------------------

Wenn nun jemand ohne Visual Studio 2012 die "Snake 2012.exe" öffnen will, dann kommt der Fehler wie oben beschrieben.
Nun muss er jediglich die "vcredist_x86.exe", die ich von folgender Seite habe: http://www.microsoft.com/en-us/download/…s.aspx?id=30679 , ausführen und installieren.
Danach hat es bis jetzt bei jedem geklappt, dem ich den Ordner geschickt habe.
Das einzige Problem war bis jetzt, dass 2 Personen sich nicht von Anfang an mit W A S D bewegen konnten und nach erneutem Schicken der "Snake 2012.exe" hat es dann funktioniert.
Ich werde das Problem mal weiter im Auge behalten und schaun ob es öfters auftritt.


So dann habe ich auch nochmal den Dependency Walker, den mir Jonathan_Klein ans Herz gelegt hat, über die "Snake 2012.exe" laufen lassen und dabei spuckte mir das Programm folgenden Fehler aus, mit dem ich aber leider nichts anfangen kann:

Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Error: Modules with different CPU types were found.

Ansonsten funktioniert aber alles und ich möchte mich nochmal bei allen bedanken, die mir dabei geholfen haben.

Gruß
Simon

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

17.10.2012, 06:36

Du hast offensichtlich DLLs für 32 und 64 Bit Systeme gemischt. Das nützt natürlich keinem etwas. Die DLLs sollten übrigens überflüssig sein, wenn die Redist installiert wurde.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

BK Simon

Treue Seele

  • »BK Simon« ist der Autor dieses Themas

Beiträge: 151

Beruf: Student

  • Private Nachricht senden

9

17.10.2012, 17:54

@BlueCobold:
Wie kann das sein, dass ich sie gemischt habe ohne, dass ich irgendetwas verstellt habe ? :)
Und wie entmische ich die oder allgemein wie bekomme ich den Fehler weg ?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

10

17.10.2012, 18:29

Du wirst schlicht eine DLL kopiert haben, die eben zu einem 64-Bit-System gehört, nicht zu einem 32-Bit-System.
Da wirst Du wohl rausbekommen welche der beiden (oder beide?) das ist und diese entsprechend... na ja, generell wirst Du sie wohl ohnehin beide weglassen können, denn darum kümmert sich ja die Redist.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige