विंडोज लाइब्रेरी की सामग्री कैसे देखें (* .लिब)


181

मेरे पास एक बाइनरी फ़ाइल है - विंडोज स्टैटिक लाइब्रेरी (* .लिब)।
क्या उस लाइब्रेरी से कार्यों के नाम और उनके इंटरफ़ेस का पता लगाने का एक सरल तरीका है?

लिनक्स सिस्टम पर उपयोगिताओं emfarऔर elfdumpउपयोगिताओं के समान ?


1
नोट: .NET के लिए विशिष्ट कमांड प्रॉम्प्ट विजुअल स्टूडियो संस्करणों के साथ आता है, लेकिन एक्सप्रेस संस्करण के साथ नहीं। प्रेषक: social.msdn.microsoft.com/Forums/en-US/…
isgoed

जवाबों:


199

मान लें कि आप किसी स्थिर लाइब्रेरी के बारे में बात कर रहे हैं, तो लाइब्रेरी DUMPBIN /SYMBOLSमें फ़ंक्शंस और डेटा ऑब्जेक्ट दिखाता है। यदि आप एक आयात पुस्तकालय ( .libएक DLL से निर्यात किए गए प्रतीकों को संदर्भित करने के लिए उपयोग किया जाता है) के बारे में बात कर रहे हैं , तो आप चाहते हैं DUMPBIN /EXPORTS

ध्यान दें कि "C" बाइनरी इंटरफ़ेस से जुड़े फ़ंक्शंस के लिए, यह अभी भी आपको वैल्यूज़, पैरामीटर्स या कॉलिंग कन्वेंशन नहीं लौटाएगा। वह जानकारी बिल्कुल भी एन्कोडेड नहीं है .lib; आपको यह जानना होगा कि समय के आगे (हेडर फ़ाइलों में प्रोटोटाइप के माध्यम से, उदाहरण के लिए) उन्हें सही ढंग से कॉल करने के लिए।

C ++ बाइनरी इंटरफ़ेस से जुड़े कार्यों के लिए, कॉलिंग कन्वेंशन और तर्कों को फ़ंक्शन के निर्यात किए गए नाम में एन्कोड किया जाता है (इसे "नाम मैनलिंग" भी कहा जाता है)। DUMPBIN /SYMBOLSआपको दोनों "मैंगल्ड" फ़ंक्शन नाम के साथ-साथ पैरामीटर के डिकोड किए गए सेट को दिखाएगा।


6
दोनों / प्रतीक और / आजकल काम नहीं करते। मुझे .lib फ़ाइल के सभी कार्यों को देखने के लिए एक और अधिक पाइप के साथ / ALL का उपयोग करना होगा।
user5280911

100

एक दृश्य कमांड कंसोल खोलें (विजुअल स्टूडियो कमांड प्रॉम्प्ट)

dumpbin /ARCHIVEMEMBERS openssl.x86.lib

या

lib /LIST openssl.x86.lib

या इसे 7-ज़िप के साथ खोलें :) इसका AR संग्रह है


19
7-ज़िप के साथ कूल ट्रिक से प्रतीत होता है कि वहाँ दो। Txt फाइलें हैं, उनका क्या मतलब है?
डेमियन

21

मुझे ar t libfile.aयूनिक्स में एक उपकरण चाहिए था ।
खिड़कियों के बराबर है lib.exe /list libfile.lib


4
हां, केवल (ओबीजी) obj फाइलें दिखाएगा; यह obj फ़ाइलों में फ़ंक्शन और डेटा नहीं दिखाएगा।
user34660

14

"डंपबिन-नेटपोर्ट्स" डीएलएल के लिए काम करता है, लेकिन कभी-कभी काम के लिए काम नहीं करता है। लिब के लिए हम "डंपबिन -लिंकेमर" या सिर्फ "डंपबिन -लिंकेमर: 1" का उपयोग कर सकते हैं।



13

DUMPBIN / EXPORTS में से अधिकांश जानकारी मिल जाएगी और MSDN को टकराने से बाकी राशि मिल जाएगी।

विज़ुअल स्टूडियो पैकेजों में से एक प्राप्त करें; सी ++


3

1) वीएस 2017 के लिए एक डेवलपर कमांड प्रॉम्प्ट खोलें (या आपके मशीन पर जो भी संस्करण है) (यह नीचे स्थित होना चाहिए: प्रारंभ मेनू -> सभी कार्यक्रम -> विज़ुअल स्टूडियो 2017 (या आपके मशीन पर जो भी संस्करण है) -> विजुअल स्टूडियो टूल्स -> डेवलपर कमांड प्रॉम्प्ट VS 2017 के लिए।

2) निम्नलिखित कमांड दर्ज करें:

dumpbin /EXPORTS my_lib_name.lib


2

जैसे कि इसे अन्य उत्तरों में देखा जा सकता है, आपको dumpbin.exeअपने निष्पादन पथ में अपने विज़ुअल स्टूडियो के संस्करण में एक डेवलपर कमांड प्रॉम्प्ट खोलना होगा । अन्यथा, आप हाथ से आवश्यक पर्यावरण चर सेट कर सकते हैं।

dumpbin /EXPORTS yourlibrary.libआमतौर पर प्रतीकों की एक छोटी सूची दिखाएगा। कई मामलों में, यह लाइब्रेरी के कार्यों को प्रदर्शित नहीं करेगा।

dumpbin /SYMBOLS /EXPORTS yourlibrary.libउस प्रतीक को दिखाएगा, लेकिन अन्य सीबम की एक अविश्वसनीय रूप से बड़ी मात्रा में भी। तो, आप उन्हें फ़िल्टर करने के लिए, संभवतः एक पाइप के साथ findstr(यदि आप एक एमएस-विंडोज उपकरण चाहते हैं), या grep

Staticइनमें से किसी एक टूल का उपयोग करने वाले कीवर्ड को खोजना एक अच्छा संकेत लगता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.