2010-12-28 16 views
5

पर tlbexp.exe का उपयोग करके मैं Centura और COM.dll के बीच संचार स्थापित करने का प्रयास कर रहा हूं। (डेटाबेस आयात के लिए http://download.resip.fr से डाउनलोड किया गया)एक COM dll

सेंचुरा को इस घटक से संवाद करने में सक्षम होने के लिए एक .tlb फ़ाइल की आवश्यकता होती है। आम तौर पर मैं .tlb उत्पन्न करने के लिए regasm /tlb का उपयोग करता हूं लेकिन यह एक COM .dll के रूप में देख रहा है यह संभव नहीं है।

मैंने पाया कि मैं नेट dll के लिए tlbexp इस्तेमाल कर सकते हैं: http://msdn.microsoft.com/en-us/library/hfzzah2c(v=vs.80).aspx

मैं इस बाहर की कोशिश की, यह जानकर यह शायद विफल हो जाएगा (मैं कॉम .dll है के रूप में)।

TlbExp : error TX0000 : Could not load file or assembly 'file:///C:\Windows\system32\ResipBcb.dll' or one of its dependencies. The module was expected to contain an assembly manifest.

निर्भरता वाकर का उपयोग करते हुए मैंने देखा दो .dll के लापता: मैं इस त्रुटि प्राप्त हुई। मुझे ieshims.dll ऑनलाइन मिला लेकिन मुझे wer.dll नहीं मिल रहा है। this question देखें।
मुझे नहीं पता कि tlbexp विफलता के पास इस फ़ाइल के साथ कुछ भी नहीं है जो गुम है?

समेट करने के लिए, मेरा प्रश्न है: मैं इस .dll से .tlb कैसे प्राप्त करूं? मुझे इस COM .dll से .tlb निकालने का कोई तरीका नहीं दिख रहा है।

सादर
क्लिंट Cambier

उत्तर

2

TblExp और regasm .NET विधानसभाओं पर केवल मान्य हैं, तुम्हारे पास क्या है सबसे अधिक संभावना एक मानक गैर .NET COM DLL है। तो इन दो आदेशों में से कोई भी इस डीएलएल पर मान्य नहीं है।

मानक COM ऑब्जेक्ट्स regsvr32 का उपयोग कर पंजीकृत हैं। अपने डीएलएल के खिलाफ इसे चलाने का प्रयास करें और देखें कि यह सही तरीके से पंजीकृत है या नहीं। यदि आपको यह Centura के ActiveX एक्सप्लोरर में सूचीबद्ध होना चाहिए।

+0

मैंने बाद में नोटिस किया कि TlbExp केवल .NET असेंबली पर काम करता है। TlbImp COM .dll पर काम करता है। जिसने मेरे लिए भ्रम पैदा किया। Regsvr32 काम नहीं करेगा, मुझे पता है। हंस पासेंट के सुझाव का प्रयास करने जा रहे हैं। – Starceaker

+0

अब मैं अपनी टिप्पणी संपादित नहीं कर सका, मेरा मतलब था कि मैंने पहले ही regsvr32 की कोशिश की है और यह काम नहीं करता है। मैं इसे फिर से कोशिश करूंगा, यह कोशिश करने के लिए चोट नहीं पहुंचाता है। – Starceaker

9

जो आप करने की कोशिश कर रहे हैं केवल .NET असेंबली के लिए काम करता है, मूल COM सर्वर नहीं। उनके लिए टाइप लाइब्रेरी लगभग हमेशा डीएलएल के अंदर एम्बेडेड होती है। विजुअल स्टूडियो में, फ़ाइल + ओपन + फ़ाइल का उपयोग करें और डीएलएल का चयन करें। "TYPELIB" नोड खोलें, संसाधन (आमतौर पर 1), निर्यात पर राइट-क्लिक करें। इसे एक प्रोजेक्ट निर्देशिका में कहें, कहें .tlb फ़ाइल नाम एक्सटेंशन का उपयोग करें।

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