2011-03-11 16 views
6

मेरे पास एक तरफ एक सी # नेट 4.0 एप्लिकेशन है और दूसरी ओर एक वीबी 6 ऐप है। मैंने परियोजना COM दृश्यमान और सक्रिय COM COMOP को सक्रिय करके COM इंटरफ़ेस बनाया है।COM क्लास दृश्यता: सी # से वीबी 6

मैंने सी # अनुप्रयोग को कार्यान्वित करके COM इंटरफेस का परीक्षण किया जो नई टीएलबी फ़ाइल आयात करता है। सब ठीक लग रहा है।

अगले चरण के रूप में मैंने vb6 के साथ डीएलएल का उपयोग करने की कोशिश की। डीएलएल लोड किया जा सकता है लेकिन अब मैं सभी सार्वजनिक वर्गों को नहीं देख सकता। सी # में मैं vb6 में 4 कक्षाएं देखता हूं, मैं केवल 3.

जिस वर्ग को मैं नहीं देख सकता वह एक "विशेष" कारण है क्योंकि यह एक इंटरफेस को प्रभावित करता है और घटनाओं की सेवा करता है।

वर्ग

[ComSourceInterfaces(typeof(COMEvents))] 

के साथ चिह्नित है और COMEvents इंटरफेस है

तरह
[Guid("11947063-4665-4DE1-931D-9915CCD01794")] 
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)] 
    public interface COMEvents 
    { 
     void MethodOne(); 
     void MethodTwo(); 
    } 

मैं कहना है कि सब ठीक काम किया है। मैंने एक प्रोजेक्ट जोड़ा है जो COM इंटरफ़ेस प्रोजेक्ट द्वारा रनटाइम पर लोड होने वाली अन्य असेंबली को प्रभावित करता है। वे एक इंटरफेस को लागू करते हैं जो बदल गया। कॉम इंटरफ़ेस में किए गए एकमात्र परिवर्तन को एक विधि में additonal पैरामीटर जोड़ रहा है।

मैं कक्षा को और क्यों नहीं देख सकता? और यह केवल वह वर्ग क्यों है जिसे मैंने बदल दिया लेकिन कोई "जोखिम भरा" तरीका नहीं है?

मदद की ज़रूरत है धन्यवाद!

पुनश्च: मैं कोशिश करने के लिए अब: -> सभी परियोजना का निर्माण 86 हैं -> परियोजना 86 मशीन पर निर्माण -> निर्भरता वाकर (GPSVC.DLL और IESHIMS.DLL याद कर रहे हैं लेकिन वे भी पहले किया था और मुझे नहीं लगता कि उनके पास एनी प्रभाव है क्योंकि टीएलबी का निर्माण होता है और लोड किया जा सकता है) -> tlbexp.exe का प्रयास किया लेकिन एक निर्भरता त्रुटि प्राप्त करें क्योंकि असम्बद्ध रनटाइम वर्तमान से नया है। wtf?)

उत्तर

4

पाया गया ... 2 पैरामीटर के साथ कन्स्ट्रक्टर था और वीबी 6 अधिक पैरामीटर के साथ कन्स्ट्रक्टर का समर्थन नहीं करता है।

+1

आपको आश्चर्य होता है ... "एक निर्भरता त्रुटि प्राप्त करें क्योंकि असम्बद्ध रनटाइम वर्तमान की तुलना में नया है।" .... एक पूरी तरह से गैर-संबंधित त्रुटि, और फिर भी आप दृढ़ हैं। मैं तुम्हें सलाम करता हूं, तुम बहादुर आदमी हो। –