- 原來的項目需要追加一個截圖的功能。我將其封裝成一個類,但是在添加到項目時爆出了以下錯誤。
C1189 #error directive: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
- 原因
因為創建的不是MFC工程,所以缺少一些關於MFC工程的定義。
- 修改方法
編譯器已經給出來解決方法。要么不要使用Md選項,要么在代碼中添加 #define _AFXDLL預定義指令。
關於MD選項的相關知識可以參考’VC運行時庫(/MD、/MT等) - xingrun - 博客園 (cnblogs.com)
- 修改MD選項,在配置,C/C++,代碼生成,運行庫。選項中,選擇除了MD選項外的其它選項。但是需要注意,別忘記release和debug都需要修改。
- 直接在代碼最上方加入#define _AFXDLL 預定義,這個我加在了使用MFC的自定義類的頭文件中。這個我比較推薦。
- 追加預定義在VC配置中,在配置,C/C++,預處理器,預處理器定義中追加_AFXDLL。這個同樣別忘記relase和debug版本都需要追加。修改的原理和第二個一樣。