पर्यावरण: Windows XP SP3, विजुअल सी ++ 2010 एक्सप्रेस, डीएलएल टेम्पलेट
मैं कमांड पास करने का प्रयास कर रहा हूं
उदाहरण: "c: \ विकास & gt; rundll32, getpage.dll, GetPage"
जब मैं निम्नलिखित स्ट्रिंग पास करता हूँ "http://www.google .ca "मुझे यादृच्छिक संख्या मिलती है (पता स्थान को संभालने?)
#include" stdafx.h "#include & lt; string.h & gt; #include & lt; स्ट्रिंग & gt; # शामिल करें & lt; stdlib.h & gt; # शामिल करें & lt; stdio.h & gt; # शामिल करें & lt; urlmon.h & gt; # शामिल करें & lt; tchar.h & gt; # शामिल करें & lt; fstream & gt; नेमस्पेस एसटीडी का उपयोग करना; Extern "C" __declspec (dllexport) LPCWSTR __cdecl GetPage (एलपीसी WWSTR यूआरएल); बूल एपीआईटीटीई डेलमेन (हैंडल एचएमडीयूएल, डीडवर्ड्स यूएल_रसन_फोर, एलपीवीओआईडी एलपीआरएसएज्ड) {रिटर्न सही; } LPCWSTR GetPage (एलपीसी WWSTR URL) {LPCWSTR स्थिति; HRESULT getpage_status = URLDownloadToFile (NULL, URL, _TEXT ("status.log"), 0, शून्य); / *** यदि मैं एक स्थिर स्ट्रिंग जैसे URL = "http://www.google.ca" पास करता हूं तो सामान काम कर रहा है; मुझे इसके बजाय फ़ंक्शन के लिए कमांड लाइन एआरजेस की आवश्यकता है *** / वापसी की स्थिति;
आप किसी भी DLL फ़ंक्शन को चलाने के लिए rundll32 का उपयोग नहीं कर सकते हैं, आप केवल इसे चलाने के लिए उपयोग कर सकते हैं फ़ंक्शन जिनके पास निम्न हस्ताक्षर हैं:
शून्य कॉलबैक प्रविष्टिपॉइंट (एचडब्ल्यूएनएच एचडब्ल्यूड, हिंसस्टाइन एचआईएनटी, एलपीटीआरएस एलपीएसज सीएमडीलाइन, आईएनटीएमसीएमडी शो); अधिक जानकारी के लिए देखें। या तो फ़ंक्शन हस्ताक्षर का उपयोग करने के लिए GetPage परिवर्तित करें, या एक प्रविष्टि बिंदु के रूप में उपयोग करने के लिए उस हस्ताक्षर के साथ एक नया फ़ंक्शन बनायें और उस कॉल को GetPage कॉल करें। >
Comments
Post a Comment