visual c++ - त्रुटि कृपया#AFXDLL परिभाषित करें या प्रोजेक्ट गुणों में परिवर्तन करने के बाद भी/MD[d] का उपयोग न करें




visual-c++ mfc (4)

मैं विजुअल स्टूडियो 2011 में Win32 प्रोजेक्ट पर काम कर रहा हूं। यह एमएफसी त्रुटि उत्पन्न कर रहा है जब मैं afx.h या afxwin.h शामिल करता हूं। इसे हल करने के लिए, मैंने प्रोजेक्ट प्रॉपर्टी टैब में निम्नलिखित परिवर्तन किए हैं: 1) एमएफसी का उपयोग: साझा डीएलएल 2 में एमएफसी का उपयोग करें) सी ++ -> कोड जेनरेशन -> रनटाइम लाइब्रेरी -> मल्टी-थ्रेडेड डीबग डीएलएल (/ एमडीडी)

जब भी मैं समाधान का निर्माण करता हूं तब भी मुझे निम्न त्रुटि मिलती है:

1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\vc\atlmfc\include\afx.h(24): fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]

मेरा सवाल यह है कि Win32 प्रोजेक्ट एमएफसी त्रुटि उत्पन्न कर रहा है और मुझे इस त्रुटि को कैसे हटाया जाना चाहिए। कृपया मुझे मार्गदर्शन करें।


एक परियोजना विन्यास सेटिंग्स द्वारा अप्रत्यक्ष रूप से #define _AFXDLL जोड़ें


मुझे एक ही समस्या थी, लेकिन जब मुझे एहसास हुआ कि मुझे डीबग और रिलीज कॉन्फ़िगरेशन (मैंने इसे केवल डीबग के लिए सेट किया था) के लिए "साझा डीएलएल में एमएफसी का उपयोग करें" को सेट करना था, तो इसे हल किया।


मैं एक समान समस्या से जूझ रहा था। मेरे मामले में यह अलग-अलग सीपीपी फाइलों से जुड़ी सेटिंग्स के कारण हुआ था। चूंकि उनमें प्रीप्रोसेसर प्रतीक शामिल थे, इसलिए उन्होंने वास्तव में प्रोजेक्ट (या प्रोप) स्तर सेटिंग्स को अवरुद्ध कर दिया जो प्रीप्रोसेसर प्रतीकों का उपयोग करते थे।

तो जांचें कि क्या आपके पास अपने vcxproj में फ़ाइल स्तर सेटिंग्स हैं। यदि आप करते हैं, तो जांचें कि वे प्रोजेक्ट लेवल सेटिंग्स के बराबर हैं या नहीं। यदि वे हैं, तो आप उन्हें सुरक्षित रूप से हटा सकते हैं। यदि मतभेद हैं, तो आपको इसे हल करना होगा।

सीपीपी फ़ाइल स्तर सेटिंग्स आमतौर पर खाली होनी चाहिए (जब आपको उनकी आवश्यकता होती है तो कुछ अपवाद होते हैं), लेकिन उन्हें दुर्घटना से जोड़ना काफी आसान है।


विजुअल स्टूडियो 2011 पर, यह मेरे लिए काम किया:

Project -> "project" Properties -> Configuration Properties -> C/C++ -> Advanced -> Show Includes: YES(/showIncludes) Project -> "project" Properties -> Configuration Properties -> C/C++ -> Advanced -> Show Includes: YES(/showIncludes)

Project -> "project" Properties -> Configuration Properties -> General -> Project Defaults -> Use of MFC : Use MFC in a shared DLL Project -> "project" Properties -> Configuration Properties -> General -> Project Defaults -> Use of MFC : Use MFC in a shared DLL





mfc