2009-03-14 17 views
5

मैं एक छोटा सा पुस्तकालय दिया गया है, एक .dll, एक ज शीर्षक और एक .def फ़ाइल से मिलकर साथ एक DLL का उपयोग करना। मुझे यकीन है कि पुस्तकालय सी में लिखा गया था, लेकिन संभवतः सी ++।सी में ज हैडर ++

यह संभव मुझे LoadLibrary/GetProcAddress/FreeLibrary विधि है कि आमतौर पर के बारे में बात कर रहा है का उपयोग किए बिना पुस्तकालय में कार्यों का उपयोग करने के लिए है। मेरे पास कोई .lib फ़ाइल नहीं है - क्या यह सामान्य है?

मैं सचमुच पिछले 2 दिनों इस को देख खर्च किया है। ऐसा लगता है के बाद से मैं एक हेडर फाइल दिया गया है कार्यों को परिभाषित मैं dll से उपयोग करना चाहते हैं, और एक .def फ़ाइल मैं स्पष्ट रूप से 'लोड' के लिए प्रत्येक कार्य मैन्युअल रूप से (LoadLibrary/GetProAddress/FreeLibrary) की जरूरत नहीं होनी चाहिए कि - में मेरे मामले मैं .dll से लगभग 5 या 6 कार्यों का उपयोग किया जाएगा, लेकिन लगभग 70 उपलब्ध देखते हैं और ऐसा लगता है कि एक गेंद दर्द हो सकता है और कोड की एक अनावश्यक गंदगी में परिणाम होगा।

किसी भी सलाह के लिए धन्यवाद।

उत्तर

3

विजुअल C++ "lib है "- ऑनलाइन मदद में इसे देखो।

उपयोग "lib/def" उदारीकरण फ़ाइल बनाने के लिए।

2

आपको एक lib फ़ाइल की आवश्यकता है - इसमें स्टब्स शामिल हैं जो लिंकर को आपके डीएलएल के लिए आयात तालिका बनाने की आवश्यकता है।

सुनिश्चित नहीं हैं कि अगर यह काम करेगा, लेकिन आप कोशिश कर सकते हैं:

खाली स्टब्स और .def फ़ाइल के साथ एक सी फ़ाइल बनाएँ। .lib उत्पन्न करने के लिए एक ही नाम के साथ एक डीएलएल के रूप में संकलित करें। नए डीएलएल को फेंक दें, और lib के साथ लिंक करें, यदि मौजूदा डीएलएल एक ही निर्देशिका में है, तो आपका एक्सई आपका प्रोग्राम लोड और बाध्य करने में सक्षम होना चाहिए।

मेरा मानना ​​है कि यह काम करेगा क्योंकि देशी डीएलएल का दृढ़ता से नाम नहीं है। -

7

वहाँ एक DLL के लिए एक आयात पुस्तकालय बनाने के लिए कई तरीके हैं माइक्रोसॉफ्ट अपनी खुद की .def फ़ाइल का निर्माण करके एक बनाने के लिए विधि दस्तावेजों:

संबंधित मुद्दे