2012-12-18 39 views
0

我最近的任務是對我們公司的產品進行完全重命名。目前它是使用Visual Studio 2008中的MFC構建的。我試圖通過使用Find/Replace以及重命名各種項目屬性來在Visual Studio中執行重命名;然而,當我跑了(後成功構建/鏈接),我得到了以下錯誤:重命名Visual Studio 2008 MFC項目後發生R6034運行時錯誤

Runtime Error!

Program: d...

R6034

An application has made an attempt to load the C runtime library incorrectly. Please contact the application's support team for more information.

enter image description here

我算了一下,亂七八糟的東西了,所以我把這個項目的原始副本,確認它建立/連接/正常運行,然後使用外部編輯器進行重命名。經過一段冗長的時間之後,我重新命名了一切。運行時,我遇到了同樣的R6034錯誤。

我開始潛入這個錯誤,大部分時間它似乎是由缺少清單文件造成的。我比較了應用程序設置的良好(原始名稱)副本,除少數名稱外,所有內容都是相同的。清單正在生成並嵌入。我在VS2008中打開了可執行文件,並確認RT_MANIFEST存在並且ID爲1.清單本身與工作程序集中的相同。我嘗試使用外部清單併發生相同的問題。

看起來我可能不得不手動移植整個應用程序,但我仍然無法知道這是否真的有效。有任何想法嗎?

+0

你可以發佈你的清單文件嗎?這可能是你的程序以前的版本使用了MS CRT 7.0文件,而新版本想使用8.0。 – cha

+0

無聊的答案,但...我認爲你需要在重命名上慢一點。做一些改變然後建立和測試,重複。你會發現哪個重命名最終導致問題。通常情況下,就像試圖同時加載調試CRT和釋放CRT一樣。 – snowdude

+0

感謝您的意見。我找出了這個問題。看到即將到來的答案。 cha - 這絕對不是試圖使用錯誤的CRT版本。這兩個清單文件在版本和全部中是相同的。 snowdude - 這是我的下一步行動。有很多事情要做,但看起來很合理。幸運的是,現在它不是問題。 – bradenb

回答

0

嗯,我明白了。我希望我有深刻的洞察力,但這是一個簡單的錯誤:

我與重命名(錯誤#1)同時進行的其中一項任務是刪除英特爾Fortran庫項目解。該代碼很少(如果有變化),所以我們想要刪除它,以簡化在沒有安裝英特爾編譯器的情況下在另一臺計算機上構建的過程。此步驟的一部分是手動將庫添加到鏈接器輸入列表。好吧,我不小心將版本庫添加到了調試版本中,這是導致問題的原因。只要我糾正它,並使其成爲調試版本,它就可以正確鏈接。

我不太明白導致問題的原因。過去,我在調試版本中使用了發佈庫(反之亦然),但由於某種原因,將英特爾和/或Fortran投入混合使用。

感謝大家的時間。

相關問題