विजुअल स्टूडियो में आपके सी ++ प्रोजेक्ट में टाइप लाइब्रेरी आयात करने और इस प्रकार परिभाषित वस्तुओं का उपयोग करने के लिए बहुत सारे समर्थन किए गए हैं। उदाहरण के लिए, आप #import
निर्देश का उपयोग कर सकते हैं:
#import "CANoe.tlb"
इस प्रकार लायब्रेरी आयात करेगा, और फ़ाइलों और कार्यान्वयन फ़ाइलें हेडर के परिवर्तित - भी यह अपनी परियोजना और हेडर के साथ निर्मित किया जाना कार्यान्वयन फ़ाइलों का कारण होगा फ़ाइलों को शामिल किया जाना चाहिए, इसलिए यह वहां बहुत सारी जादू सामग्री है।
फिर, आपको टाइप लाइब्रेरी में परिभाषित प्रकारों और ऑब्जेक्ट्स के लिए स्मार्ट पॉइंटर रैपर के लिए बहुत सारे टाइपपीफ मिलते हैं। उदाहरण के लिए, अगर वहाँ था एक CoClass Application
जो इंटरफेस IApplication
कार्यान्वित कहा जाता है, आप ऐसा कर सकता है:
ApplicationPtr app(__uuidof(Application));
यह रन टाइम पर कारण होगा, coclass आवेदन बनाया जा और चर app
करने के लिए बाध्य है, और आप इसलिए जैसे उस पर कॉल कर सकते हैं:
app->DoSomeCoolStuff();
त्रुटि निवारण COM कॉल का परिणाम जाँच, और उचित _com_error अपवाद के रूप में आवश्यक फेंक द्वारा किया जाता है तो यह आप अपवाद सुरक्षित रूप से लिखने की ज़रूरत निकलता है।
स्रोत
2009-06-24 10:33:34
धन्यवाद:
एक अंतरफलक सूचक बनाने के लिए, सुरक्षित तरीकों में से एक की तरह CComPTR उपयोग करने के लिए है। मेरे पास एप्लिकेशन के लिए डीएलएल फ़ाइल नहीं है, इसलिए इस दृष्टिकोण को प्राथमिकता दी जाएगी। मेरी स्रोत फ़ाइल में #import "CANoe.tlb" के बाद निम्नलिखित संकलन त्रुटियां प्राप्त करना। - अज्ञात चरित्र '0x1' - वाक्यविन्यास त्रुटि: गायब ';' पहचानकर्ता 'ए' से पहले - गायब प्रकार विनिर्देशक - int मान लिया। नोट: सी ++ डिफ़ॉल्ट-int - '{': अनुपलब्ध फ़ंक्शन हेडर (पुरानी शैली औपचारिक सूची?) कृपया सुझाव दें, अगर मुझे कुछ कदम याद आ रहा है, तो कृपया सुझाव दें। क्या .tlb फ़ाइल सामग्री को सत्यापित करने और इन त्रुटियों को हल करने का कोई तरीका है। अग्रिम धन्यवाद –
मेरा सुझाव है कि आप इसे हल करने का प्रयास करें और यदि आप प्रबंधित नहीं करते हैं तो पर्याप्त विवरण प्रदान करने के लिए एक अलग प्रश्न पूछें। – sharptooth