2013-07-21 9 views
10

क्या के साथ एक चाबी प्रेस हो रही के बीच का अंतर है:GetKeyState() बनाम GetAsyncKeyState() बनाम getch()?

  • GetKeyState()
  • GetAsyncKeyState()
  • getch()?

मुझे दूसरे पर एक का उपयोग कब करना चाहिए?

+2

डाउनवोट क्यों? मुझे स्टैक ओवरफ्लो से इस पर कोई परिणाम नहीं मिल रहा है, भले ही मैं 'getch() 'को अनदेखा करता हूं और' GetKeyState() बनाम GetAsyncKeyState()' के लिए खोज करता हूं। –

उत्तर

13

GetKeyState() और GetAsyncKeyState() विंडोज विशिष्ट एपीआई हैं, जबकि getch() अन्य गैर-विंडोज-विशिष्ट सी कंपाइलर्स पर काम करता है।

GetKeyState() को थ्रेड के संदेश कतार से लौटाई गई प्रमुख स्थिति प्राप्त होती है। स्थिति हार्डवेयर से जुड़े इंटरप्ट-स्तरीय स्थिति को प्रतिबिंबित नहीं करती है।

GetAsyncKeyState() यह निर्दिष्ट करता है कि GetAsyncKeyState() पर अंतिम कॉल के बाद कुंजी को दबाया गया था, और क्या कुंजी वर्तमान में ऊपर या नीचे है या नहीं। यदि सबसे महत्वपूर्ण बिट सेट किया गया है, तो कुंजी नीचे है, और यदि कम से कम महत्वपूर्ण बिट सेट किया गया है, तो पिछले कॉल के बाद GetAsyncKeyState() पर कुंजी दबाई गई थी।

जो मैंने अभ्यास में देखा है वह यह है कि यदि कुंजी दबाया जाता है तो एक कुंजी दबाकर व्यवहार को असाइन करें, यदि आप GetKeyState() का उपयोग करते हैं, तो व्यवहार का उपयोग करने के मुकाबले अधिक बार कहा जाएगा GetAsyncKeyState()।

खेलों में, मैं GetAsyncKeyState() का उपयोग करना पसंद करता हूं।

(आप एमएसडीएन ब्लॉग पर अधिक जानकारी के लिए भी जांच कर सकते हैं)।

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