काम नहीं करेगा मैंने सी # का उपयोग करके एक .NET असेंबली लिखा है जो प्रबंधित और अप्रबंधित कोड दोनों द्वारा उपयोग किया जाएगा। मेरे पास एक वीबी 6 प्रोजेक्ट है जिसे अब COM के माध्यम से असेंबली का उपयोग करने की आवश्यकता है।वीबी 6 में .NET असेंबली का संदर्भ
मैंने अपनी .net असेंबली बनाई, सुनिश्चित किया कि कॉमविज़िबल सत्य पर सेट है और यह प्रोजेक्ट गुणों के माध्यम से COM इंटरऑप के लिए पंजीकृत है।
public class MyClass
[ComVisible(true)]
public string GetResponse()
{
return "Testing Response"
}
}
मैं असेंबली का निर्माण करता हूं और फ़ाइल को फ़ोल्डर में कॉपी करता हूं। TestInterop.dll
फिर मैं COM के लिए ऑब्जेक्ट पंजीकृत करने के लिए असेंबली टूल पंजीकृत करने के लिए बैच फ़ाइल चलाता हूं।
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\
regasm "c:\Program Files\TestApp\TestInterop.dll" /tlb:TestInterop.tlb
मैं एक नया VB6 आवेदन और संदर्भ TestInterop.dll
VB6 में मैं निम्नलिखित कोड लिखने और इसे संकलित खोलें।
Dim obj as TestInterop.MyClass
Set obj = new TestInterop.MyClass
Dim strTest as string
strTest = obj.GetRespose()
जब मैं प्रोग्राम चलाता हूं तो यह obj.GetResponse() लाइन पर त्रुटियों को चलाता है।
Run-time error' -2147024894 (80070002'):
Automation error
The system cannot find the file specified
इसके अलावा, इंटेलिजेंस obj पर काम नहीं करता है। मुझे GetResponse
विधि टाइप करना पड़ा। क्या यह सामान्य है?
क्या किसी के पास कोई संकेत है कि क्या गलत हो सकता है या मुझे कौन से कदम याद आए। धन्यवाद!
एक आकर्षण की तरह काम किया।बहुत धन्यवाद! मैं/codebase कमांड का उपयोग कर regasm उपकरण चला गया।/Codebase भी आपके लिए tlb फ़ाइल बनाता है। आपके उत्तरों के लिए हर एक का धन्यवाद। – dretzlaff17