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

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

1

03.08.2006, 19:33

Release und Debug Version

Hallo!

Vielleicht könnt ihr mir ja mal eben schnell weiter helfen.
Ich habe bis jetzt immer Debug kompiliert und jetzt auf Release.
Bei Release ist er immer abgestürtzt, bis ich dann nochmal kompliert habe und einen Fehler bekommen habe:
to save the updated manifest to the file ".\release\game.exe.embed.manifest". Falscher Parameter.

Dann habe ich den Release Ordner gelöscht und er hat ohne Fehler kompiliert und es lief alles wunderbar.
So und jetzt wollte ich Debug wieder probieren und stürtzt beim Ausführen ab.
Bis ich wieder diesen Fehler beim kompilieren bekomme, obwohl ich nichts geändert habe:
to save the updated manifest to the file ".\debug\game.exe.embed.manifest". Falscher Parameter.

Debug Ordner gelöscht und es geht, aber Release geht jetzt wieder nicht mehr....

Was kann das sein? Ich benützte VC++ 2005.

cya,
Stefan

Anonymous

unregistriert

2

03.08.2006, 19:37

Wenn Dein Programm abstürzt im Release zeugt das von schlechtem Code. Also fehlender Initialisierung und Sicherheitsabfragen.

Da das Programm aus der IDE abgeschossen ist, wurden Run-Time-Daten beschädigt. Oft hilft da nur den jeweiligen Ordner zu löschen und die IDE neuzustarten.

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

3

03.08.2006, 20:10

ok danke!
Also ich habe schon alle Zeiger von jeder Klasse im Konstruktor auf Null gesetzt usw.
Aber ich werde morgn mal den Code verschönern und so Zeug wie sprintf durch die neuen Funktionen ersetzen.

Damit ich es überhaupt zum Laufen bekommen habe, musste ich bei den Einstellungen bei Character Set auf Usw Multi.Byte Character Set umstellen. hm, ist das schlecht? oder macht das nichts?

Anonymous

unregistriert

4

03.08.2006, 20:52

Klar macht das was. Aktuelle Windowsprogramme unterstützen nur Unicode, daran solltest Du Dich auch halten.

Je nachdem was für Strukturen benutzt werden, kann es auch dabei kräftig Krachen.

Du solltest nicht nur auf Secure-Functions umsetzen, sondern auch jede Funktion die aufgerufen wird den Rückgabewert prüfen.

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

5

03.08.2006, 21:22

ok, danke!
Hab jetzt alles auf Unicode umgestellt, auch die Debug Version.
Bekomme jetzt aber einige Warnings und sogar ein paar Errors.
z.B. habe ich gesehen, wenn ich Text übergebe wie beim Titel des Fensters muss ich TEXT(.. ) davor schreiben, also so: TEXT("Name des Fensters")
Aber bei einem String TextureName.c_str() geht das nicht mehr. Wie muss ich den konvertieren? Hab dazu nicht wirklich was gefunden...


cya,
Stefan

Anonymous

unregistriert

6

03.08.2006, 21:25

benutz kein std::string sonder std::basic_string<wchar_t>

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

7

04.08.2006, 15:28

so hab ich auch geändert!
Die sprintf hab ich alle in sprintf_s() geändert, so wie es der Compiler schreibt.
Ich habe jetzt auch alle Pointer überprüft, aber leider möchte die Release Version einfach nicht laufen.
Ich wollte mittels LogFile herausefinden wo er abstürtzt, aber leider findet man da nicht direkt einen Punkt.

C-/C++-Quelltext

1
2
3
4
5
6
7
Logfile->Write(..)
Game->Init();
...

bool Game::Init(..)
Logfile->Write(..)
...


Beim 2. Write kommt er dann schon gar nicht mehr an...

Ich habe auch noch einige Warnings, aber leider kann ich damit nicht direkt was anfangen.
Hab mal meine BuildLog hinaufgeladen -> www.northwindent.com/BuildLog.htm

Langsam weiß ich nicht mehr was ich ändern soll...

cya,
Stefan

8

04.08.2006, 16:26

Hab jetzt gerade kkeine Zeit alles durchu lesen... guck mal ob Game exitiert...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

9

04.08.2006, 18:24

*gg* so leicht ist es leider nicht =) (bitte mal die Zeit zum lesen nehmen :) )

Also ich komme nicht weiter, ich ändere ein paar Sachen im Code und dann kommt wieder der Error .\release\game.exe.embed.manifest". Falscher Parameter beim Kompilieren.
Bis ich den Release Ordner lösche und anschließend läuft das Programm wunderbar!!

Aber was mir merkwürdig vorkommt, ich habe einen Workspace mit 4 Projekten, 3 davon sind Libaries für das Spiel und ein Projekt ist das eigentliche Spiel.
Die exe beim erstellen wird nicht in das Unterverzeichnis des Spielprojektes abgespeichert, sondern in einem Release Ordner der sich dort befindet wo auch die .sln Datei befindet.


Und ist es normal, dass die erstellten release libs größer sind als die debug libs? das kann doch auch nicht normal sein?


cya,
Stefan

10

04.08.2006, 19:34

Hmm das nen Release Ordner da ist... jop ist normal wenn es dich stört stell nen andern pfad in den Projoptions ein...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Werbeanzeige