मैंने WinXP के तहत एक .dll बनाया है जो दावा करता है कि इसे लोड होने पर DWMAPI.DLL नहीं मिल सकता है। समस्या यह है कि यह डीएलएल एक विस्टा डीएलएल है, और यह आईपी 7 स्थापित करने वाले XP उपयोगकर्ताओं के लिए एक ज्ञात मुद्दा है। आईई 7 अनइंस्टॉल करने या प्रोग्राम्स जोड़ें/निकालें के माध्यम से .NET Framework की मरम्मत करने की सिफारिश है। मैंने मरम्मत की, और कुछ भी नहीं बदला। मैं आईई 7 को अनइंस्टॉल करने वाला नहीं हूं क्योंकि एक बेहतर समाधान होना चाहिए जो "विंडोज़ को पुनर्स्थापित करें" के बराबर नहीं है।WinXP के तहत DWMAPI.DLL देरी-लोड निर्भरता को कैसे ठीक करें?
मैंने आईई 7 की स्थापना रद्द करने का प्रयास करने वाले लोगों के बारे में बुरी चीजें पढ़ी हैं, इसलिए मैं उस मार्ग पर जाने के लिए अनिच्छुक हूं।
मैं विजुअल स्टूडियो 2003 (7.1) के तहत सी ++ का उपयोग कर रहा हूं। मुझे एक विकल्प नहीं दिख रहा है जहां मुझे एप्लिकेशन लॉन्च पर देरी हो रही है। जब मैंने डीएलएल प्रोजेक्ट बनाया था तो मैंने अभी डिफ़ॉल्ट सेटिंग्स का उपयोग किया था। मुझे अभी एक दिलचस्प विकल्प मिला है, लिंकर-> इनपुट-> देरी लोड डीएलएल, इसलिए मैंने डीडब्ल्यूएमएपीआई.डीएलएल को देरी से लोड करने के लिए मजबूर किया। हालांकि, मुझे यह लिंक मिलता है:
LINK : warning LNK4199: /DELAYLOAD:dwmapi.dll ignored; no imports found from dwmapi.dll
.. और यह निश्चित रूप से मेरी DLL लोड करने का प्रयास करते समय कोई चीज़ नहीं बदली। इसके बिल्ली के लिए, मैंने डीएलएल के पूरे पेड़ को जोड़ा जो डीडब्ल्यूएमएपीआई.डीएलएल की ओर जाता है, और मुझे वही संदेश मिलता है। (रिकॉर्ड के लिए, यह foundation.dll-> shell32.dll-> shdocvw.dll-> mshtml.dll-> ieframe.dll-> dwmapi.dll है।)
के बारे में मैं क्या कर रहा हूँ और अधिक विशिष्ट होना करने के लिए , मैं एक माया प्लगइन लिख रहा हूँ और स्क्रिप्ट संपादक में हमेशा-उपयोगी पाठ मिलता है:
// Error: Unable to dynamically load : D:/blahblahblah/mydll.mll
The specified module could not be found.
//
// Error: The operation completed successfully.
//
// Error: The operation completed successfully.
(mydll) //
मैं निर्भरता वाकर इस्तेमाल किया शुरू में समस्या पर नज़र रखने के लिए, और कहा कि क्या मुझे नेतृत्व DWMAPI.DLL है। ये संदेश निर्भर करता है मुझे देता हैं, और DWMAPI.DLL केवल एक चीज एक पीले रंग की प्रश्न चिह्न इसके बगल में है कि:
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
गेराल्ड सही है। माया वास्तव में निर्भरता वॉकर की तुलना में एक अलग पैथ का उपयोग कर रही है। मेरा प्लग-इन एक और डीएलएल (छवि प्रसंस्करण के लिए) लोड करता है जो माया प्लग-इन निर्देशिका में रहता है और इसे किसी समस्या के साथ पाया जाता है, लेकिन माया नहीं था। मुझे माया.एएनवी में पाथ में "प्लग-इन" जोड़ना पड़ा।
देखने के रूप में इस समस्या को सब के बाद DWMAPI.DLL से संबंधित नहीं था, लेकिन DWMAPI एक आम समस्या है, मैं सबसे अच्छा लिंक मैं नोवेल वेबसाइट here पर DWMAPI मुद्दे के बारे में पाया पोस्ट करेंगे। असल में, अधिकांश कार्यक्रमों में depend.exe में यह चेतावनी होगी, लेकिन यदि इसके बगल में देरी-लोड आइकन है, और आप सुनिश्चित हैं कि प्रोग्राम सीधे या अप्रत्यक्ष रूप से DWMAPI को कॉल नहीं करेगा, तो यह ठीक है। समस्या कहीं और है। यदि देरी-लोड आइकन मौजूद नहीं है, तो आपको विजुअल स्टूडियो में/DELAY और/DELAYLOAD विकल्प देखना होगा। तथ्य यह है कि मुझे एक "चेतावनी" दिया गया है और एक "त्रुटि" इस तथ्य का संकेत नहीं था कि DWMAPI स्वचालित रूप से लोड नहीं हो रहा है।
मैंने इस समस्या को हमारे विंडोज 2003 सर्वरों में से एक पर मारा। यह सिर्फ एक खूनी कंसोल ऐप है और फिर भी यह (या कुछ अन्य निर्भरता) dwmapi.dll को भी दावा करने का दावा करता है। मुझे इसका एक निश्चित जवाब देखना अच्छा लगेगा। +1। – Kev
मुझे लगता है कि Google ड्राइव-बाय से बहुत सारे विचार हैं। बस "dwmapi.dll" पर खोज करना यह दूसरा परिणाम है। –