instantiating मैं इस साधारण वर्ग के साथ एक COM-इंटरॉप .dll बनाया:स्वचालन त्रुटि जब एक नेट COM दिखाई वर्ग
using System.Runtime.InteropServices;
namespace ClassLibrary1
{
[ComVisible(true)]
[Guid("795ECFD8-20BB-4C34-A7BE-DF268AAD3955")]
public interface IComWeightedScore
{
int Score { get; set; }
int Weight { get; set; }
}
[ClassInterface(ClassInterfaceType.None)]
[Guid("9E62446D-207D-4653-B60B-E624EFA85ED5")]
public class ComWeightedScore : IComWeightedScore
{
private int _score;
public int Score
{
get { return _score; }
set { _score = value; }
}
private int _weight;
public int Weight
{
get { return _weight; }
set { _weight = value; }
}
public ComWeightedScore()
{
_score = 0;
_weight = 1;
}
}
} मैं का उपयोग कर पंजीकृत यह: C: \ WINDOWS \ Microsoft.NET \ फ्रेमवर्क \ v4.0.30319 \ regasm सी: \ comClasses \ Classlibrary1.dll/tlb: classlibrary1.tlb
अंततः मैंने सफलतापूर्वक .dll के संदर्भ को जोड़ा जिसके बाद वीबी 6 ने मुझे ऑब्जेक्ट पर इंटेलिजेंस दिया।
Private Sub Form_Load()
Dim score1 As ComWeightedScore
Set score1 = New ComWeightedScore
score1.Score = 500
End Sub
Set score1=new ComWeightedScore
लाइन पर अपवाद स्वचालन त्रुटि उठाई गई है।
यह शायद ही कोई आसान हो सकता है ... त्रुटि कहां है ?!
और आप क्यों कहते हैं कि त्रुटि int या long असाइन करने में है? कन्स्ट्रक्टर कॉल क्या विफल रहता है। यदि आप कन्स्ट्रक्टर के शरीर से असाइनमेंट हटाते हैं तो क्या यह अभी भी असफल हो जाता है? साथ ही, आपको मिलने वाली त्रुटि पर अधिक जानकारी और विवरण प्रदान करें। –