मैं WinMain
के cmdLine
तर्क को argc
और argv
में कनवर्ट करना चाहता हूं, इसलिए मैं कंसोल अनुप्रयोगों के लिए लिखने वाले तर्क पार्सिंग फ़ंक्शन का उपयोग कर सकता हूं।पुरानी शैली मुख्य() के तर्कों में WinMain की cmdLine को तोड़ना
यह छोटा होगा, सिवाय इसके कि मैं भी "उद्धरण" का समर्थन करना चाहता हूं। उदाहरण के लिए:
test.exe test1 test2 "testing testing"
argv[0] = "test.exe"; argv[1] = "test1"; argv[2] = "test2"; argv[3] = "testing testing";
होना चाहिए मुझे एहसास है कि cmdLine में प्रोग्राम का नाम नहीं है (argv [0]); इससे कोई फर्क नहीं पड़ता कि मैं एक डमी मूल्य का उपयोग कर सकता हूं।
मैं इसे रेगेक्स के साथ करने की सोच रहा था, (("[^"]+")\s+)|(([^\s]+)\s*)
मुझे यकीन नहीं है कि यह कितना अच्छा काम करेगा .. शायद बहुत अच्छा नहीं है? विंडोज एपीआई में ऐसा करने के लिए कोई काम है? धन्यवाद
बस देखना है कि 'CommandLineToArgvW' नहीं करता ' टी सरणी के अंत तक एक सेंटीनेल नल मान जोड़ें, इसलिए इसमें मानक सी – jamesdlin
में 'argv' के समान अर्थशास्त्र नहीं है, इसके अतिरिक्त,' कमांडलाइन टीओए आरजीवीडब्ल्यू ग्लोब का विस्तार नहीं करेगा। यदि '__argc' /' __argv' अनुपलब्ध है, तो आपको इसके बजाय '__getmainargs' या' __wgetmainargs' का उपयोग करना चाहिए। –
@ एंड्रयूमेडिको सी 8 9 के बाद से? भाषा मानक अनिवार्य है कि "argv [argc]' एक शून्य सूचक होगा "। हालांकि यह अनावश्यक जानकारी है, यह मानक व्यवहार है, इसलिए कुछ लोग उस पर भरोसा करते हैं। – jamesdlin