मैं सी के "छिपा/अंधेरी जगहों" करने के लिए नया हूँ ++ और मैं सोच रहा था एक अलग निर्देशिका या एक के अंदर किसी उप-निर्देशिका से एक .dll फ़ाइल को लोड करने के लिए कैसे जहां मेरे वर्तमान निष्पादनसी ++ एक उपनिर्देशिका से डीएलएल लोड करें?
पूर्व से चल रहा है :
./MyAppDirectory
/MyApp.exe
/SomeDLL.dll
/AnotherDLL.dll
/SubDirectory
/SomeDLL2.dll
/AnotherDLL2.dll
/YetAnotherDLL.dll
/...
तो "MyApp.exe" स्वचालित रूप से "SomeDLL.dll" और "AnotherDLL.dll" से यह रूट फ़ोल्डर "MyAppDirectory" है लेकिन मैं भी "SomeDLL2.dll" लोड करने में सक्षम होना चाहता हूँ लोड करता है, " "MyAppDirectory" फ़ोल्डर के अंदर "SubDirectory" फ़ोल्डर से एक और DLL2.dll "," YetAnotherDLL.dll "आदि।
मैं कुछ खोज करने के किया गया है और मैं क्या मिल गया है से केवल समाधान हैं:
- 1) निष्पादन की कार्यशील निर्देशिका को संशोधित करें।
- 2) डीएलएल फ़ाइलों को विंडोज रूट के अंदर रखें।
- 3) पाथ पर्यावरण चर को संशोधित करें।
लेकिन उनमें से सभी के पास कुछ बुरे पक्ष हैं (यहां उल्लेख करने लायक नहीं है) और यह वास्तव में मुझे आवश्यकता नहीं है। एक और समाधान "आवेदन विशिष्ट पथ" के माध्यम से है! जिसमें विंडोज रजिस्ट्री के साथ काम करना शामिल है और पहले उल्लेख किया गया है तो थोड़ा बेहतर लगता है।
हालांकि मुझे बाहरी विधियों का उपयोग किए बिना सी ++ का उपयोग करके "MyApp.exe" के अंदर ऐसा करने में सक्षम होना चाहिए।
मैं मिनीजीडब्ल्यू 4.7.2 का उपयोग कर रहा हूं और मेरा आईडीई कोड :: ब्लॉक 12.11 भी है, मेरा ओएस विंडोज एक्सपी एसपी 3 प्रो x86 है।
कोई संदर्भ, ट्यूटोरियल, प्रलेखन, उदाहरण आदि स्वीकार किया जाता है और अपने समय के लिए धन्यवाद: आप
LoadLibrary("subFolder\\dynamicLibrary.dll");
DLLs को स्पष्ट लिंक भी होता है का उपयोग करना चाहिए डी
आपकी सभी तीन आइटम सूची खराब विचार हैं। उनमें से कोई भी मत करो। –
संभावित डुप्लिकेट [स्थिर लिंक किए गए डीएलएल के लिए डीएलएल खोज पथ को बदलना] (http://stackoverflow.com/questions/3832290/altering-dll-search-path-for-static-linked-dll) – MSalters