2013-09-24 60 views
1

編譯時,我創建了一個乾淨的(非MFC)ATL項目, 添加一個對話框和一些位圖,我得到3 MFC涉及錯誤:非MFC ATL項目(DLL)產生MFC相關的錯誤

WINDOWS.H已包括在內。 MFC應用必須不#包括 @與/ MD [d](CRT DLL版本) 需要MFC共享DLL版本afxv_w32.h

建築MFC應用程序。請#定義_AFXDLL或不使用 /MD [d] @ afx.h

由於該項目具有無關MFC - 爲什麼會出現這些錯誤? (下項目設置:

=使用斯坦達特Windows庫 「MFC的使用」 我已經籤預處理器定義: WIN32 _WINDOWS _DEBUG _USRDLL

沒有在這裏也

任何想法?

更新:我發現我做錯了什麼,而不是從類嚮導添加對話框,我創建它在資源視圖中,並添加了一個類。而不是ATL課程。

+0

您看到包含MFC以某種方式。 (當添加對話框或者通過'#include'時)。這不是非MFC項目發生的事情。 –

+0

剛剛添加了一個對話框,ATL對話框,我以前沒做過任何事情。我在類似的項目中做過不止一次。我在比較,這次沒有發現任何不同。 – Dani

+0

使用[/showIncludes](http://msdn.microsoft.com/en-us/library/hdkef6tk.aspx)編譯器選項找出爲什麼''包含在內,並從那裏開始工作。 – IInspectable

回答

0

我想出了什麼是錯的,在這裏更新,供將來的用戶使用,因爲ATL的文檔非常差。

我在資源視圖中添加了一個對話框,併爲其添加了一個類。那是錯誤的。被添加的類是MFC類,儘管項目不應該支持MFC。

如果要保持項目的清潔(從MFC),你需要添加對話框,通過類視圖中添加類如這篇文章中所述:

Add ATL Dialog Box

如果不是ATL我會已經把它作爲MS的bug發佈,但我不認爲他們仍然關心這項技術。