2008-10-10 19 views
5

पृष्ठभूमि: हम Win32 अनुप्रयोग विकसित करते हैं, और विंडोज़ पर "थॉम्पसन टूलकिट" का उपयोग करते हैं ताकि हमें एक यूनिक्स-जैसे खोल दिया जा सके जिसे हम अपने कमांड लाइन के रूप में उपयोग करते हैं।एक जीयूआई अनुप्रयोग में कंसोल को कैसे लिखें

हमारे पास एक जीयूआई प्रोग्राम है (एक विनमेन और संदेश लूप के साथ) जिसे हम कंसोल पर लिखना चाहते हैं, लेकिन प्रिंटफ और काम नहीं करते हैं, भले ही हम कंसोल से प्रोग्राम लॉन्च करते हैं। हम एक जीयूआई प्रोग्राम से कंसोल को कैसे लिख सकते हैं? हमें वहां टेक्स्ट प्रिंट करने की आवश्यकता है ताकि एक स्वचालित बिल्ड सिस्टम त्रुटि संदेशों को प्रदर्शित कर सके और इसी तरह।

धन्यवाद।

+0

यह एक और हालिया प्रश्न का डुप्लिकेट प्रतीत होता है: [http://stackoverflow.com/questions/191842/how-do-i-get-console-output-in-c-with-a-windows-program ] (http://stackoverflow.com/questions/191842/how-do-i-get-console-output-in-c-with-a-windows-program) –

उत्तर

5

संक्षेप में, आपको एक कंसोल संलग्न करने की आवश्यकता है। विवरण के लिए और कोड का उपयोग करने के लिए तैयार, http://www.codeproject.com/KB/dialog/ConsoleAdapter.aspx देखें।

0

कहीं भी विजुअल स्टूडियो प्रोजेक्ट सेटिंग्स में आप कंसोल पर स्विच कर सकते हैं, मानते हैं कि आप वीएस का उपयोग कर रहे हैं। (कहां नहीं कह सकता क्योंकि मेरे पास वर्तमान में यह नहीं है)

0

कंसोल पर लॉग इन करने के बजाय, फ़ाइल पर लॉग ऑन करें और फिर फ़ाइल को एक अलग gui एप्लिकेशन के साथ ट्रैक करें। यह कंसोल को अनियंत्रित रखता है और आपको अपने लॉग का एक अधिक लगातार रिकॉर्ड देता है, जो कभी-कभी बेहद उपयोगी होता है। ऐसे कई पुस्तकालय हैं जो आपके लिए इनमें से अधिकतर काम करेंगे, या आप इसे सरल रख सकते हैं और बस इसे स्वयं कर सकते हैं।

+2

आप अन्य प्रोग्रामों के लिए आउटपुट पाइप नहीं कर सकते । इसके अलावा यदि कोई उपयोगकर्ता किसी फ़ाइल में लॉग इन करना चाहता था, तो वह उसे फ़ाइल में पाइप करेगा। फ़ाइल में लॉग इन करना लचीला नहीं है। – Roel

0

मूल रूप से आपको AllocConsole, AttachConsole के साथ अपने स्वयं के द्वारा एक कंसोल बनाना होगा। इसके बाद आपको की मदद से GetStdHandle के साथ मानक हैंडल प्राप्त करना होगा और "मौजूदा ऑपरेटिंग सिस्टम फ़ाइल हैंडलर के साथ एक सी रन-टाइम फ़ाइल डिस्क्रिप्टर को संबद्ध करता है"।

लौटा हुआ हैंडल का इस्तेमाल क्रेट stdin और stdout को ओवरराइट करने के लिए किया जा सकता है। उसके बाद printf जैसे सभी सीआरटी तरीकों को काम करना चाहिए।

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