2011-06-02 7 views
11

मैंने विजुअल स्टूडियो 2010 के यूनिट टेस्ट फ्रेमवर्क का उपयोग करके कुछ समस्याएं निभाई हैं। परीक्षण के निष्पादन के बाद वर्तमान में QTAgent32 डीएलएल का संदर्भ बनाए रखेगा।QTAgent32.exe निष्पादन के बाद एक डीएलएल खोलने के लिए एक हैंडल रखता है

प्रश्न में डीएलएल कुछ देशी सी ++ कोड के आसपास एक सी ++/क्ली रैपर है। रैपर द्वारा उजागर वस्तु वास्तव में प्रबंधित कोड द्वारा कभी असाइन नहीं की जाती है। यह एकमात्र संदर्भ है कि यह देखने के लिए निपटान के दौरान अंतिम जांच है कि यह कक्षा के जीवनकाल के दौरान निर्धारित किया गया है या नहीं।

If(_obj != null) 
{ 
    _obj.Dispose(); 
    _obj = null; 
} 

मैं एक तथ्य के लिए यह पता है के बाद से मैं DLL के लिए प्रतीकों देख सकते हैं अगर मैं कोड के माध्यम से कदम और डीबगर सांत्वना उत्पादन घड़ी मार करता है, तो (जो समझ में आता है), जब तक लोड नहीं होतीं। सभी प्रबंधित वस्तुओं में शामिल है यह सुनिश्चित करने के लिए कि सभी मूल वस्तुओं को मेमोरी लीक से बचने के लिए सावधानी बरतनी है।

इस प्रश्न के आधार पर: QTAgent32 Holding File Open मैंने यह सुनिश्चित किया कि कोई फ़ाइलस्ट्रीम स्पष्ट रूप से खोला नहीं गया था (कंसोल समेत) और कोई भी फाइल भी उपयोग नहीं की जाती है, फिर भी समस्या बनी हुई है। मैं विचारों से बाहर निकल रहा हूं कि क्या करना है।

क्या कोई मदद कर सकता है?

टीएल; डीआर: QTAgent32.exe एक सी ++/क्ली रैपर के लिए एक खुला संदर्भ रखता है जिसे कभी भी तत्काल नहीं किया जाता है।

उत्तर

0

यह परीक्षण गुणों की खोज के लिए शायद metadata only mode में डीएलएल खोलता है। यह प्रतीक लोडिंग ट्रिगर नहीं करेगा, लेकिन यह फ़ाइल को लॉक कर सकता है।

11

मैं फोरट्रान डीएलएल का उपयोग करते समय एक ही समस्या में भाग गया। समस्या तब भी बनी जब डीएलएल समारोह पूरी तरह से खाली था।

मुझे अभी भी पता नहीं है कि समस्या क्या है, लेकिन एक आसान कामकाज QTAgent32 प्रक्रिया की हत्या को आपके प्रोजेक्ट में प्री-बिल्ड इवेंट के रूप में निर्दिष्ट करना है।

taskkill /f /im QTAgent32.exe 
exit 0 
+1

प्री-बिल्ड विचार वास्तव में वास्तव में अच्छा है। मुझे अब से इसका उपयोग करना पड़ सकता है। धन्यवाद। – JMcCarty

+1

qtagent32 नहीं चल रहा है जब त्रुटि से बचने के लिए निम्न पंक्ति में 'निकास 0' जोड़ें। – Christian

+0

@ क्रिस्टियन मदद नहीं करता है, qtagent32 चल रहा है जब मुझे 'बाहर निकलें 0' के साथ भी त्रुटि मिलती है। मदद क्या है, इसके बजाय इस कमांड का उपयोग कर रहा है: 'टास्ककिल/एफ/आईएम QTAgent32.exe' शुरू करें – theV0ID

संबंधित मुद्दे