पर एक्सपोज़ करना मैंने यूएसबी पर सॉफ़्टवेयर सुरक्षा डोंगल तक पहुंचने के लिए सी ++ कक्षा विकसित की है। सी ++ क्लास को लिनक्स के तहत जी ++ के साथ विकसित किया गया है, लेकिन मैं इसे विंडोज़ के तहत मिनीजीडब्लू का उपयोग करके सफलतापूर्वक संकलित कर सकता हूं। मेरे पास एक वैज्ञानिक अनुप्रयोग है जो वीबी 6 (विजुअल बेसिक 6) के साथ बनाया गया है।एक आईबीओ सी ++ कक्षा को एक वीबी 6 एप्लिकेशन
सवाल यह है कि मैं अपने सी ++ वर्ग को वीबी 6 ऐप में कैसे दिखा सकता हूं? ऐसा करने के संभावित तरीके क्या हैं? क्या मुझे COM का उपयोग करने की ज़रूरत है? (ठीक है, एक "माइक्रोसॉफ्ट-कम" समाधान अधिक बेहतर है :)
आपकी मदद बहुत सराहना की है!
अपडेट 1. अपनी टिप्पणियां पढ़ना मुझे एहसास हुआ कि मुझे सी ++ कक्षा में एक COM wrapper को लागू करने की आवश्यकता है। क्या कोई अच्छा और हालिया उदाहरण हैं? क्या मैं MinGW (और एमएसवीसी से परहेज) का उपयोग कर COM wrapper को कार्यान्वित कर सकता हूं?
अद्यतन 2. अंत में, मैंने इस प्रश्न के लिए एक उपहार देने का फैसला किया। नीचे वे चीजें हैं जिन्हें मैं बेहतर समझना चाहता हूं:
1. मुझे एहसास हुआ कि मुझे अपने सी ++ वर्ग में एक COM wrapper को लागू करने की आवश्यकता है। किसी को इस तरह से एक वर्ग के लिए यह कैसे बनाने के लिए पर उदाहरण काम कर प्रदान करें कर सकते हैं:
class ValueMapper
{
public:
ValueMapper() { }
ValueMapper(double fmin, double fmax, int ilength) {
SetMapping(fmin, fmax, ilength);
}
inline double GetMin() { return min; }
inline double GetMax() { return max; }
inline int GetLength() { return length; }
virtual inline void SetMapping(double fmin, double fmax, int ilength)
{
min = fmin;
max = fmax;
length = ilength;
}
virtual inline int MapValue(double value) {
double factor = length/(max - min);
return (int)RoundTo((value-min) * factor);
}
static double RoundTo(double value, double eps = 1) {
return floor(value/eps + 0.5) * eps;
}
protected:
double min;
double max;
int length;
};
2. कैसे VB6 से उत्पन्न COM आवरण उपयोग कैसे करें? क्या मुझे एक COM सर्वर पंजीकृत करने की आवश्यकता है या नहीं? क्या मैं पंजीकरण के बिना इसका उपयोग कर सकता हूं?
3. वैकल्पिक। क्या MinGW का उपयोग कर एक COM wrapper को कार्यान्वित करना संभव है?
1) अपने वर्ग और VB6 से सीधे पहुँच के चारों ओर एक COM आवरण लिखें:
बहुत से संभावित डुप्लीकेट: http://stackoverflow.com/search?q=vb6+call+c%2B%2B – fazo
[विजुअल बेसिक के साथ उपयोग के लिए डीएलएल विकसित करने के लिए नोट्स] (http: //vb.mvps। संगठन/टिप्स/vb5dll.asp) –
आप COM से बचने की कोशिश क्यों कर रहे हैं? वीबी 6 पूरी तरह से COM विकास में फैला हुआ है। कल्पना करना मुश्किल है कि आप "माइक्रोसॉफ्ट-कम" समाधान का उपयोग करने की कोशिश में क्या हासिल करते हैं। यदि आप चाहते थे, तो आप एक वीबी 6 आवेदन नहीं लिखेंगे या इसे विंडोज़ पर नहीं चलाएंगे। –