我有一些真正的困難,將一個非常古老的Visual Studio 97 C++項目移植到Visual Studio 2010中。讓我首先給出一些背景,到這個新的LNK1224錯誤,因爲它們可能是相關的,但我不確定。奇怪的鏈接錯誤 - LNK1224:無效的圖像庫
在此之前我的新的錯誤,我收到此錯誤:
error LNK2005: "void __cdecl operator delete(void *)" ([email protected]@Z) already defined in LIBCMT.lib(delete.obj) nafxcw.lib(afxmem.obj)
通過一些挖我發現這個錯誤的原因是因爲無論是MFC和CRT庫包含「新」和「刪除定義「所以他們碰撞。微軟在http://support.microsoft.com/kb/q148652/中提供了2種解決方案。其中之一是確保在你的所有文件中,你總是首先包含MFC頭文件(afx stuff)。那麼這個項目中大約有100個文件,我只是厭倦了試圖找到包含錯誤順序資源的文件。所以我採用了另一種基本上迫使圖書館以特定順序加載的解決方案。基本上你必須告訴編譯器忽略一個特定的庫,以便你可以按照你選擇的順序顯式地加載它。在我的情況下,它是nafxcw.lib。
因此,在項目屬性 - >鏈接器 - >輸入,我明確忽略nafxcw.lib,然後明確地將它包括在列表的前面。
所以這樣做之後,我LNK2005錯誤就走開了。但它們被替換爲一個鏈接錯誤。
error LNK1224: invalid image base 0x287600000
我不知道我是否正確固定我以前的鏈接錯誤,這個新鏈接錯誤,其實是我不得不面對接下來的事情,或者我只是創建了基本遏制了更關鍵的鏈接錯誤鏈接過程之前,它達到我原來的LNK2005錯誤。無論哪種情況,我都無法找到有關此錯誤的很多信息。微軟並沒有在這個環節上說太多關於它http://msdn.microsoft.com/en-us/library/3ya3f8wz%28v=vs.80%29.aspx
You specified an invalid base address for the image. Base addresses must be 64KB aligned (the last four hex digits must be zero) and image base must fit within a 32-bit signed or unsigned value.
這是不是所有對我很有幫助,而且似乎沒有其他的線索,在那裏這個問題的來源。我不知道下一步是什麼。