那麼我試圖編譯一個我正在處理的小測試應用程序。更改代碼生成後用代碼255退出的特定代碼行
所以讓事情變得短而簡單:
當我設置從「多線程DLL」到「多線程」我的代碼生成擺脫一些依賴,下面的代碼行崩潰我的應用程序(其中它通常運行沒有任何瑕疵)
的崩潰發生時,我想很短的路徑轉換爲長路徑。作爲這樣的:
LPCSTR tmp = reinterpret_cast<LPCSTR>(getenv("Temp"));
GetLongPathNameA(tmp,tempFolder,MAX_PATH);
崩潰,特別是發生在第一個行:
LPCSTR tmp = reinterpret_cast<LPCSTR>(getenv("Temp"));
所以任何想法在這裏爲什麼它當你切換的代碼生成模式突然停止工作?謝謝!
編輯:
經過一些代碼重寫,我設法找出它執行
getenv("Temp");
非常非常奇怪的透視時,因爲它在其他模式
當您構建項目時是否有任何警告? – Dialecticus 2010-11-20 11:46:29
不是沒有,它只是出於一些奇怪的原因代碼255退出 – zeta 2010-11-20 12:12:36
爲什麼'reinterpret_cast'是必要的? 'getenv'的結果是'char *',它應該自動轉換爲'LPCSTR'(即const char *')。如果你在沒有演員的情況下得到了錯誤,他們可能值得注意。 – 2010-11-25 01:19:45