Nun, ich habe versucht, eine kleine Test-App kompilieren, die ich arbeite.bestimmte Zeile des Codes mit Code 255 nach dem Ändern der Code-Generierung
So Dinge zu halten, kurz und einfach:
Wenn ich von „Multi Threaded DLL“ auf „Multi Threaded“, um loszuwerden, einige Abhängigkeiten, die folgende Codezeile meine Codegenerierung gesetzt meine Anwendung abstürzt (wo es läuft normalerweise ohne irgendwelche Fehler)
Der Unfall geschieht, wenn ich einen kurzen Weg zu einem langen Weg umwandeln möchte. als solche:
LPCSTR tmp = reinterpret_cast<LPCSTR>(getenv("Temp"));
GetLongPathNameA(tmp,tempFolder,MAX_PATH);
Der Absturz tritt speziell in der ersten Zeile:
LPCSTR tmp = reinterpret_cast<LPCSTR>(getenv("Temp"));
So, hier irgendwelche Ideen, warum es plötzlich nicht mehr funktioniert, wenn Sie den Code-Generierung-Modus wechseln? Vielen Dank!
EDIT:
Nachdem ich einige Code-Umschreiben Ich schaffte es speziell um herauszufinden, stürzt ab, wenn
getenv("Temp");
sehr, sehr seltsam Sehen Ausführung, wie sie Arbeit in den anderen Modus funktioniert
Gibt es Warnungen, wenn Sie das Projekt erstellen? – Dialecticus
Nein, da ist es nicht, es wird einfach aus irgendeinem seltsamen Grund mit Code 255 beendet. – zeta
Warum ist der 'reinterpret_cast' notwendig? Das Ergebnis von 'getenv' ist' char * ', das automatisch in' LPCSTR' (d. H. 'Const char *') umgewandelt wird. Wenn Sie Fehler ohne die Besetzung erhalten, sind sie wahrscheinlich wert, beachtet zu werden. –