2015-09-04 10 views
6

द्वारा तोड़ दिया गया है हमारी टीम क्यूटी 4.7.4 का उपयोग कर एक जटिल अनुप्रयोग विकसित कर रही है। हमारे द्वारा प्रदान किए जाने वाले प्रमुख कार्यों में से एक को QWebBrowser द्वारा प्रदान की गई HTML + JS सामग्री की आवश्यकता होती है।मानक विंडोज़ खुले/सहेजने वाले संवाद को वेबकिट

समस्या

कि कुछ पृष्ठों की लोडिंग टूट खुला/बचाने के संवाद को जन्म देता है:

enter image description here

संवाद अभी भी बातचीत के संदर्भ में "काम": फ़ाइल फिल्टर बता गया खोला जा सकता है, फ़ाइल नाम दर्ज किया जा सकता है, लेकिन यह सब गलत हो गया है। फ़ाइल सूची और निर्देशिका पेड़ बिल्कुल तैयार नहीं किया गया है।

मुझे क्यूटी बग ट्रैकर और Google पर इस समस्या के बारे में कोई बग रिपोर्ट नहीं मिली है। हमने फैसला किया कि समस्या हमारी परियोजना के लिए स्थानीय है। हम मानते हैं कि कुछ comctl32.dll आंतरिक संरचना किसी के लिखने के ऑपरेशन से अमान्य पते पर बर्बाद हो जाती है, लेकिन हमें नहीं पता कि असली कारण कैसा है। यह भी उल्लेख करना महत्वपूर्ण है कि यह समस्या Qt 5.4 और 8.0 के कम संस्करण वाले किसी भी संस्करण पर दिखाई नहीं दे रही है। दुर्भाग्य से, हमें अभी भी क्यूटी 4.8 पर अगली रिलीज बनाना चाहिए (परियोजना बहुत बड़ी है, अपग्रेड प्रक्रिया में काफी समय लगता है)।

ऐसी समस्या को कैसे डिबग किया जा सकता है? क्या मेमोरी ऑपरेशंस और/या WinAPI कॉल को लगाया जाना चाहिए? किसी भी विचार की अत्यधिक सराहना की जाती है।

toolchain MSVC 9.0 (वी.एस. 2008)

+0

यदि आप विंडोज 8 और ऊपर काम करने के लिए क्यूटी 4.7 की कामना करते हैं, तो आप इसे बनाए रखने के लिए अपने आप हैं (या इसके लिए एक कस्टम अनुबंध खरीदते हैं)। यदि संभव हो तो आप comctl32.dll को अनलोड और पुनः लोड कर सकते हैं। लेकिन सबसे महत्वपूर्ण बात यह है कि यह या तो आपके कोड में एक मेमोरी बग के लिए एक क्यूटी मेमोरी बग, या (अधिक संभावना) को इंगित करता है। यह देखने के लिए कि क्या आपने कुछ भी स्पष्ट किया है, स्थिर विश्लेषकों का उपयोग करें। वहां कई सारे हैं, लेकिन आपके प्रोजेक्ट के आकार को देखते हुए आपको कम से कम पीवीएस-स्टूडियो और कवरिटी का उपयोग करना चाहिए, इसके अलावा हालिया विजुअल स्टूडियो संस्करणों के साथ आता है। –

उत्तर

3

ठीक है, जांच के लिए बहुत समय व्यतीत करने के बाद, हमने पाया है कि टूटी हुई खिड़कियों का असली कारण फ़्लैश प्लगइन डीएलएल लोड हो रहा है।

हमें डीबग विंडो में डीएलएल लोड और संवाद को तोड़ने के पल के बारे में संदेशों के बीच सहसंबंध मिला है। फ़्लैश प्लगइन लोड करने के ठीक बाद संवाद टूट जाता है।

इस प्रस्ताव को सुनिश्चित करने के लिए, हमने फ्लैश डीएलएल (NPSWF64_*.DLL) को दूसरी निर्देशिका में ले जाया ताकि वेबकिट प्लगइन ढूंढने में सक्षम न हो, और एप्लिकेशन पुनरारंभ करने के बाद संवाद ठीक हो गए।

4

क्यूटी 4.7 (4.8 भी) इन दिनों बहुत पुरानी है और धूल भरी है। यह विंडोज> 7 AFAIK का समर्थन नहीं करता है। आपको निश्चित रूप से क्यूटी 5 पर स्विच करना चाहिए।

+0

उत्तर के लिए धन्यवाद! आप बिल्कुल सही हैं, और हम पहले से ही हमारे कोडबेस को क्यूटी 5 में ले जाने के लिए बहुत सारे काम कर चुके हैं (यह पहले से ही 4 महीने लंबा है), लेकिन काम अगले उत्पाद रिलीज तक समाप्त नहीं होगा, इसलिए हमें अभी भी क्यूटी 4 की आवश्यकता है – Nipheris

+0

वैसे तो, 4.8 की कोशिश की है? चूंकि यह अभी भी थोड़े से समर्थित है, यह विंडोज 8 का समर्थन कर सकता है। मैं अभी इसका परीक्षण नहीं कर सकता, दुख की बात है। –

3

क्या आपने किसी अन्य मशीन पर अपना आवेदन करने की कोशिश की है? इस बात की तरह मेरी खुशी भी है जब मैं एक जीत 8 मशीन पर काम कर रहा था। कुछ दिनों के लिए मुझे नहीं पता था कि क्या करना है, और आखिरकार मैंने 7 पीसी जीतने की कोशिश की है और यह काम करता है। मैंने सोचा कि मेरी मशीन में कुछ गड़बड़ है लेकिन ऐसा लगता है कि यह नहीं है।

+0

उत्तर के लिए धन्यवाद! इस समय समस्या हमारे डेवलपर्स और क्यूए के प्रत्येक विन 8.1 मशीन पर पुन: उत्पन्न होती है। हमने इसे उसी प्रभाव के साथ Win 8.0 (अद्यतन के बिना) पर भी परीक्षण किया है। Win 7 या Win XP पर समस्या कभी भी पुन: उत्पन्न नहीं होती है, दुर्भाग्य से मैं अब Win 10 के बारे में कुछ भी नहीं कह सकता। – Nipheris

+0

बीटीडब्ल्यू, आपका विकास टूलचेन क्या है? क्या आप क्यूटी का भी उपयोग कर रहे हैं, या यह समस्या किसी अन्य टूलसेट के साथ दिखाई दे रही है? – Nipheris

0

आसपास वास्तव में एक मुश्किल तरीका है। यदि आप सुनिश्चित हैं कि समस्या स्मृति भ्रष्टाचार और क्यूटी आंतरिक से संबंधित है, तो अलग प्रक्रिया में खुले/सहेजें संवाद को चलाने पर विचार करें।

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