2012-02-12 8 views
6

मेरे पास कुछ .lib फ़ाइलें हैं, लेकिन मेरे पास .h हेडर फ़ाइलों तक पहुंच नहीं है। क्या इसका मतलब यह है कि .lib फ़ाइलें अब बेकार हैं?क्या .lib फ़ाइलें हेडर फ़ाइलों के बिना बेकार हैं?

यदि नहीं, तो मैं उन्हें फिर से कैसे उपयोग कर सकता हूं?

मैंने अपने कार्यक्रम में इस लाइन का उपयोग करने की कोशिश की, लेकिन ऐसा लगता है कि अंतिम निष्पादन योग्य (सीएफएफ एक्सप्लोरर के साथ सत्यापित) में संकलित नहीं किया गया है।

#pragma comment(lib, "SomeLibFile.lib") 

तो, .lib फ़ाइल को जोड़ने का एकमात्र तरीका हैडर फाइलों के उपयोग के माध्यम से है? क्या .lib फ़ाइल के लिए हेडर फ़ाइल पुनर्प्राप्त करने के लिए कोई उपकरण हैं?

+4

आप लाइब्रेरी के डाउनलोड पेज पर क्यों नहीं जाते हैं और हेडर फिर से डाउनलोड करते हैं? – Lefteris

+0

मैंने फ़ाइलों को उत्पन्न करने के लिए एक उपकरण का उपयोग किया। यह .dll और .lib इत्यादि में आउटपुट करता है। मुझे .dll का उपयोग करने में कोई समस्या नहीं है, लेकिन मुझे उत्सुकता है कि इसने .hib को .h फ़ाइल के साथ क्यों बनाया। – user25101622

+1

आप डीएलएल का उपयोग कैसे करते हैं? एक हेडर होना चाहिए, है ना? जब तक आप .NET नहीं कर रहे हैं। तुम इतने अस्पष्ट क्यों हो? हमें टूल का नाम बताएं। –

उत्तर

5

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

वैसे भी, आपके पास तकनीकी रूप से हेडर फाइल नहीं है, आप अपने आप डेटा संरचनाओं को परिभाषित कर सकते हैं, और बाहरी कीवर्ड के साथ कार्यों की घोषणा कर सकते हैं।

जब आप अपनी संकलन प्रक्रिया के अंत में अपना लिंकर चलाते हैं तो आप सिर्फ .lib को लिंक कर सकते हैं।

+2

मुझे गलत मत समझो, ऐसा करने का सबसे अच्छा तरीका हेडर ढूंढना है। –

2

आप लिंकर कमांड लाइन पर पास करके .lib फ़ाइल से लिंक कर सकते हैं, #pragma आवश्यक है।

बेशक, वास्तव में इसके अंदर किसी भी चीज का उपयोग करने के लिए कॉलिंग सम्मेलनों, फ़ंक्शन हस्ताक्षर, उपयोगकर्ता परिभाषित प्रकारों का लेआउट आदि होना आवश्यक है। यह आमतौर पर हेडर फ़ाइल द्वारा प्रदान किया जाता है, लेकिन दस्तावेज़ीकरण में भी पाया जा सकता है।

किसी भी मामले में, हेडर फाइलें कंपाइलर से उत्पन्न नहीं होती हैं (अच्छी तरह से MIDL और CORBA मशीन से जेनरेट की गई हेडर फ़ाइलों का उपयोग करती है, लेकिन शीर्षलेख में सभी जानकारी मैन्युअल रूप से .idl फ़ाइलों में दर्ज की जाती है)। और जब तक आपकी तकनीक एक प्रकार की लाइब्रेरी का उपयोग नहीं करती है, तब तक आवश्यक जानकारी डीएलएल के साथ नहीं रखी जाती है।

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