pointers - How to get content of an address in MASM32? -
निम्नलिखित प्रक्रिया शून्य समाप्त स्ट्रिंग का पता देती है:
GetExecutablePath proc local hInstance : HMODULE स्थानीय szFileName [MAX_PATH]: BYTE GetModuleHandle खोलें, नल mov hInstance, eax .if hInstance == नल एक्सएक्स, eax ret .endif GetModuleFileName, hInstance, addr szFileName, sizeof szFileName .if ईएक्स == 000h xor eax, eax रिटा .endif lea eax, szFileName GetExecutablePath endp मेरी मुख्य प्रक्रिया में, मैं इस पते की सामग्री को अन्य स्थानीय चर में कॉपी करना चाहूंगा:
स्थानीय szpath [MAX_PATH]: BYTE GetExecutablePath; के लिए ईएक्स की सामग्री को एक स्थानीय चर में ईएक्स के पते की प्रतिलिपि बनाने के लिए मुझे केवल एक रास्ता मिल गया है, लेकिन मैं संदर्भित की प्रतिलिपि बनाने का एक तरीका तलाश रहा हूं
आप पहले से ही एक स्थानीय चर तक पहुंचने का प्रयास कर रहे हैं गुंजाइश से बाहर चला गया यह विचार अच्छा नहीं है। इसके बजाय, आपको अपने GetExecutablePath फ़ंक्शन को फिर से लिखना चाहिए, जैसे कि वह बफर में एक सूचक को स्वीकार करता है। वैसे भी प्रश्न का उत्तर देने के लिए: तकनीकी तौर पर, आप कुछ प्रकार की स्मृति ब्लॉक प्रति का उपयोग करेंगे।
पीएस: आपको शून्य eax नहीं है जब आपको पता है कि यह पहले से ही शून्य है;) पीएस # 2: स्तर के निर्देश जैसे .if या .while और इसके बजाय उपयुक्त एएसएम निर्माण का उपयोग करें यदि आप शुरुआत कर रहे हैं तो आपको उनको सीखना चाहिए, और यदि आप नहीं हैं, तो यह कोई अतिरिक्त प्रयास नहीं है और आपको कम से कम पता चलेगा कि आपको क्या मिलेगा।
Comments
Post a Comment