2010-02-01 47 views
1

我在這裏有一個非常糟糕的情況......其實我正在開發一個MFC項目。在我的項目中,我有另一個小型項目作爲lib輸入給我主要項目..我設置「使用MFC」 - 作爲「在共享DLL中使用MFC」在我的項目設置...其工作很好..但是當我設置「使用MFC」 - 作爲「使用MFC在靜態DLL「..我無法在調試/發佈模式下建立項目。我不想設置」使用MFC作爲共享DLL「的原因是因爲我希望我的項目運行在不支持的機器上visual studio ...我收到以下錯誤:無法在Release模式下構建我的項目!請幫我

錯誤LNK2005:" void * __cdecl operator new(unsigned int)"(?? 2 @ YAPAXI @ Z)已在Client7z.lib(NewHandler.obj)中定義uafxcwd的.lib SelfExtractor

我看了一篇文章http://support.microsoft.com/kb/148652 [^] ..根據他們的建議,我試圖忽略follwing庫Nafxcwd.lib; Libcmtd.lib但仍然沒有工作......如果你們kn任何解決方案,請幫助我。

+0

我厭倦了那個錯誤:)如果你按照說明正確它應該工作。我過去做過很多次了。當您更改設置時,也嘗試重建所有內容。 – 2010-02-01 07:17:33

回答

1

退房上調試模式下,這些設置:

Link->General: 
Object/Libary modules: Nafxcwd.lib Libcmtd.lib Client7z.lib 

Link->Input: 
Object/Libary modules: Nafxcwd.lib Libcmtd.lib Client7z.lib 
Ignore libraries: libcmtd.lib,libcd.lib 

胡亂猜測,但至少你可以試試。

0

您還必須將C運行時更改爲靜態版本。它在C/C++ - >代碼生成 - >運行時庫。

將其設置爲/ MT(Release)或/ MTd(Debug)。

+0

我做到了。但它仍然是同樣的錯誤...和瘋狂的事情是,如果我設置我的項目在釋放模式下仍然/MT(Debug)...我也試過在所有其他模式..它不幫助我 – kiddo 2010-02-01 06:33:26

+0

您必須鏈接其他庫並導致其他依賴項。嘗試消除任何「額外包含」和「忽略庫」。 另一種方法是強制鏈接,就像Nick D的樣本一樣。 – Francis 2010-02-01 08:21:51

+0

我做的是我輸入另一個庫文件作爲我的項目輸入(theres需要它)...現在我所做的是我刪除該庫輸入並將其轉換爲一個DLL並從該模塊導出所需的功能到我的項目......及其工作gr8 ......沒有必要排除Nafxcwd.lib Libcmtd.lib這些lib的 – kiddo 2010-02-03 06:19:38