私が取り組んでいる小さなテストアプリケーションをコンパイルしようとしました。だから、短くてシンプルなものを維持するために特定のコード行がコード生成を変更した後にコード255で終了する
:私は、「マルチスレッド」は、いくつかの依存関係を取り除くためにする「マルチスレッドDLL」から私のコード生成を設定すると
、次のコード行は、(自分のアプリケーションをクラッシュ
短いパスを長いパスに変換するとクラッシュします。以下のような:
LPCSTR tmp = reinterpret_cast<LPCSTR>(getenv("Temp"));
GetLongPathNameA(tmp,tempFolder,MAX_PATH);
クラッシュは、特に最初の行で発生します。ここではそう
LPCSTR tmp = reinterpret_cast<LPCSTR>(getenv("Temp"));
任意のアイデアを使用すると、コード生成モードを切り替えると、それが突然動作しなくなった理由は?ありがとう!
EDIT:
いくつかのコード書き換えた後、私はそれを見つけるために管理
getenv("Temp");
を実行するとき、それは他のモードで作業を行うよう、具体的に非常に非常に奇妙なシーイングがクラッシュ
プロジェクトをビルドする際に警告がありますか? – Dialecticus
いいえ、ありません。何らかの理由でコード255で終了します。 – zeta
なぜ 'reinterpret_cast'が必要ですか? 'getenv'の結果は' char * 'です。これは自動的に' LPCSTR'( 'const char *')に変換されます。キャストなしでエラーが発生した場合、おそらく注意を向ける価値があります。 –