2009-06-30 4 views
21

में डीबग सी ++ डीएल मेरे पास सी ++ से एक डीडी है और मैं इसे सी # में डीबग करना चाहता हूं, लेकिन मुझे नहीं पता कि कैसे करें।सी #

जब मैंने सी ++ प्रोजेक्ट संकलित किया, तो विजुअल स्टूडियो ने मुझे ".exe" निष्पादित करने के लिए कहा।

मुझे लगा कि मुझे डीएल निष्पादित करने के लिए एक प्रोजेक्ट बनाना था।

लेकिन मैं खो गया हूं, मैं इसे कैसे डिबग कर सकता हूं?

उत्तर

3

विजुअल स्टूडियो अपने आप पर एक डीएल निष्पादित नहीं कर सकता है।

आपको स्टार्टअप .exe सेट करना होगा जो आपके डीएल प्रोजेक्ट के गुणों में आपके C++ dll का उपयोग करेगा। आप गुणों से ऐसा कर सकते हैं -> डिबगिंग -> कमांड निष्पादन योग्य के पथ को निर्दिष्ट करना जो आपके डीएलएल को कॉल करेगा और किसी भी कमांड लाइन तर्क की आवश्यकता होगी।

28

यदि मैं आपको सही ढंग से समझता हूं, तो आप एक सी ++ कोडित डीएलएल को डीबग करना चाहते हैं, जिसे आपने बनाया है, एक सी # प्रोजेक्ट में जो डीएलएल को भी बुलाता है, जिसे आपने बनाया है?

मैंने आपके सी # प्रोजेक्ट गुणों में और डीबग सेक्शन में, "अप्रबंधित कोड डिबगिंग सक्षम करें" चेक बॉक्स को चेक करके यह पहले किया है। यह आपको अपने सी ++ डीएलएल में कदम रखने की अनुमति दे सकता है।

+3

इसके अलावा, विजुअल स्टूडियो 2012 में मैंने पाया 'देशी कोड डीबगिंग सक्षम करें' नामक विकल्प – ComethTheNerd

14

सी # से सी ++ डीबग करने के लिए आपको कुछ चीजें करना है।

  1. अपने डीबग एप्लिकेशन के लिए समाधान के लिए एक सी # परियोजना जोड़ें।
  2. प्रोजेक्ट गुणों के "डीबग" टैब पर "अप्रबंधित कोड डिबगिंग की अनुमति दें" के लिए C# प्रोजेक्ट के गुणों को संपादित करें।
  3. सी #+ प्रोजेक्ट को सी # प्रोजेक्ट की निर्भरता के रूप में सेट करें।
  4. पी/Invoke या COM का उपयोग कर DLL का उपयोग करने के लिए अपने सी # प्रोजेक्ट में कोड लिखें।
  5. अपने सी ++ कोड में कुछ ब्रेकपॉइंट सेट करें और सी # प्रोजेक्ट चलाएं।
+0

प्वाइंट 2 ने मेरे लिए यह किया! मै कभी नहीं... – Ian

0

एसओएस (हड़ताल का पुत्र) डिबगिंग एक्सटेंशन (SOS.dll) आप आंतरिक CLR पर्यावरण के बारे में जानकारी प्रदान करके दृश्य स्टूडियो में कोड कामयाब डिबग

नीचे दिए गए लेख का उल्लेख में मदद करता है : -

MSDN ARTICLE