जब नेवर लोड कर्सर फ़ंक्शन का उपयोग किया जाता है तो विज़ुअल स्टूडियो संकलन चेतावनी क्यों देता है?


मुझे अपने एप्लिकेशन में LOADCURSOR फ़ंक्शन का उपयोग करने में थोड़ी कठिनाई हुई। मेरा एप्लिकेशन चेतावनी स्तर 4 का उपयोग करता है और चेतावनियों को त्रुटियों के रूप में मानता है। दुर्भाग्य से, नीचे बताए गए कारणों से, विज़ुअल स्टूडियो ने संकलन चेतावनियाँ दीं। मैं स्थिति का समाधान कैसे कर सकता हूँ?

प्रासंगिक कोड और संकलन त्रुटियाँ नीचे दिखाई गई हैं:

सी++
HCURSOR hCursor = LoadCursor(hInst, MAKEINTRESOURCE(IDC_WAIT));
        HCURSOR hOldCursor = SetCursor(hCursor);
//some codes loading codes

SetCursor(hOldCursor);

6:13:06:168 1>C:\Users\HP\source\repos\ResultSheets\ResultSheets.cpp(2038,45): चेतावनी C4302: ‘टाइप कास्ट’: ‘LPWSTR’ से ‘WORD’ तक काट-छाँट
16:13:06:168 1>C:\Users\HP\source\repos\ResultSheets\ResultSheets.cpp(2167,53): चेतावनी C4302: ‘टाइप कास्ट’: ‘LPWSTR’ से ‘WORD’ तक काट-छाँट

मैंने क्या प्रयास किया है:

मैं संकलन त्रुटि के बारे में सोच रहा हूं।

समाधान 1

त्रुटि संदेश आपको बताता है कि आपके कोड में त्रुटियाँ कहाँ होती हैं: पंक्ति 2038, कॉलम 45; और पंक्ति 2167, कॉलम 53 – लेकिन आपका कोड खंड केवल उनमें से एक दिखाता है (संभवतः)। उस पंक्ति पर जाने के लिए संपादक का उपयोग करें (त्रुटि पैनल में संदेश पर डबल क्लिक करें और यह वहां कूद जाएगा, या उपयोग करेगा CTRL+G एक विशिष्ट लाइन नंबर पर जाने के लिए)।
एक बार जब आपको पता चल जाए कि कौन सी लाइन से कौन सा संदेश जुड़ा है तो आप पहचान सकते हैं कि उस लाइन का कौन सा सटीक भाग निर्दिष्ट किया जा रहा है। अगर मुझे अनुमान लगाना होता, तो यह होता MAKEINTRESOURCE कॉल करें क्योंकि वह मैक्रो विभिन्न कास्ट करता है जो संभवतः यहां अप्रासंगिक हैं – इसे इस प्रकार परिभाषित किया गया है

सी++
#define MAKEINTRESOURCE(i) (LPTSTR) ((DWORD) ((WORD) (i)))

और IDC_WAIT पहले से ही इस प्रकार परिभाषित है:

सी++
#define IDC_WAIT            MAKEINTRESOURCE(32514)

इसलिए इसकी बहुत संभावना है कि यदि आप हटा दें MAKEINTRESOURCEअपना कोड डालें, त्रुटि दूर हो जाएगी।

मैं यह भी अनुमान लगाऊंगा कि आपने किसी ऐसे व्यक्ति से कोड लिया है जो आपके जितना तेज़ नहीं है: वे चेतावनियों को अनदेखा कर सकते हैं जो आप नहीं करते (और न ही मैं करता हूं) इसलिए इसे कभी भी एक समस्या के रूप में नहीं देखा।
कोड के किसी विशिष्ट भाग के लिए विशिष्ट चेतावनियों को अक्षम करना भी संभव है: चेतावनी #प्रैग्मा | माइक्रोसॉफ्ट लर्न[^] यदि आपको इससे निपटने का कोई अन्य तरीका नहीं मिल रहा है।

コメント

タイトルとURLをコピーしました