मेरी फ़ाइलें कुछ ऐसा दिखती हैं:
main.cpp
... bool SyncApp :: OnInit () {SetTopWindow (नया सिंक्रनाइज़ेशन Window (_ ("(S) FTP स्वचालित सिंक"))); GetTopWindow () - & gt; शो (सच); वापस सच; } ... syncwindow.h
#include & lt; wx / wx.h & gt; वर्ग सिंक्रनाइज़ेशन Window: सार्वजनिक wxFrame {सार्वजनिक: syncWindow (wxString शीर्षक): wxFrame (NULL, -1, शीर्षक) {initialize (); } निजी: शून्य प्रारंभ (); WxTextCtrl * serverEntry; }; syncwindow.cpp
शून्य सिंक करेंवंडो :: इनिशियलाइज़ () {serverEntry = new wxTextCtrl (यह, wxID_ANY); इस- & gt; addChild (serverEntry); } जो भी कारण से जब भी मैं खिड़की को बंद करता हूं मुझे एक सीगफॉल्ट मिलता है अगर मैं सर्वर को नहीं जोड़ता तो एक बच्चे के रूप में खिड़की के रूप में प्रवेश करें मुझे कोई सीगफॉल्ट नहीं मिलता है मुझे नहीं पता कि यह ऐसा क्यों कर रहा है मैं सेंटोस 6, जी ++ 4.7 और wxGTK 2.8 पर हूं क्या किसी को भी ऐसा कोई विचार या संकेत है कि ऐसा क्यों हो रहा है?
चूंकि आपने मूल विंडो निर्दिष्ट की है आपके बच्चे का निर्माण करते समय, लिंक पहले से मौजूद है और this- & gt; AddChild (serverEntry); आपको विंडो बंद करने पर डबल फ्री या इसी तरह की त्रुटि का कारण होगा। wxWindow :: addChild एक बाल विंडो जोड़ता है इसे विंडो निर्माण कार्यों द्वारा स्वचालित रूप से कहा जाता है, इसलिए इसे एप्लिकेशन प्रोग्रामर द्वारा आवश्यक नहीं होना चाहिए।
ध्यान दें कि यह फ़ंक्शन अधिकतर wxWidgets के लिए आंतरिक है और इसे उपयोगकर्ता कोड द्वारा नहीं बुलाया जाना चाहिए। < / ब्लॉककोट>
No comments:
Post a Comment