c++ - How to Use GetCORSystemDirectory()? -
हैंडल प्रोक; HMODULE एचडीएलएल; एचडीएलएल = लोड लाइब्रेरी (TEXT ("mscoree.dll")); अगर (एचडीएलएल == नल) cout & lt; & lt; "निर्दिष्ट नाम के साथ कोई डीएलएल" & lt; & lt; endl; Else {cout & lt; & lt; "डीएलएल हैंडल" & lt; & lt; एचडीएलएल & lt; & lt; endl & lt; & lt; endl; Cout & lt; & lt; "प्रक्रिया का पता प्राप्त करना ..." & lt; & lt; endl; Proc = GetProcAddress (एचडीएलएल, "GetRequestedRuntimeVersion"); यदि (Proc == NULL) {फ्री लाइब्रेरी (एचडीएलएल); Cout & lt; & lt; "प्रक्रिया लोड असफल" & lt; & lt; endl; } और {cout & lt; & lt; "प्रक्रिया का पता यहां पाया गया:" & lt; & lt; प्रोक & lt; & lt; एंडएल & lt; & lt; endl; LPWSTR सेंट; DWORD * dwlength; ; डीडब्ल्यूडब्ल्यूएस सीसीबीफर = MAX_PATH; HRESULT एचआर = GetCORSystemDirectory (सेंट, सीसीएच बफर, डीव्लैम्बिल); अगर (एचआर! = नल) {printf ("% s", एचआर); } फ्री लाइब्रेरी (एचडीएलएल); }}
मुझे .NET स्थापना पथ प्राप्त करने के लिए ऐसा करना था, लेकिन मुझे लिंकर त्रुटियां मिल रही हैं।
त्रुटि LNK2019: अनसुलझे बाहरी प्रतीक _GetCORSystemDirectory @ 12 फ़ंक्शन में संदर्भित _Main dot.obj
GetCORSystemDirectory हस्ताक्षर को परिभाषित करें:
typedef HRESULT (__stdcall * FNPTR_GET_COR_SYS_DIR) (LPWSTR pbuffer, DWORD cchBuffer, DWORD * dwlength);
फ़ंक्शन पॉइंटर आरंभ करें:
FNPTR_GET_COR_SYS_DIR GetCORSystemDirectory = NULL;
mscoree.dll से फ़ंक्शन पॉइंटर प्राप्त करें और उपयोग करें:
GetCORSystemDirectory = (FNPTR_GET_COR_SYS_DIR) GetProcAddress (एचडीएलएल, "GetCorSystemDirectory"); अगर (GetCORSystemDirectory! = NULL) {... // GetCORSystemDirectory का उपयोग करें ...}
अनुरोध के रूप में:
#ifndef _WIN32_WINNT #define _WIN32_WINNT 0x0600 #endif #include & lt; stdio.h & gt; # शामिल करें & lt; tchar.h & gt; # शामिल & lt; windows.h & gt; टाइपफीफ HRESULT (__stdcall * FNPTR_GET_COR_SYS_DIR) (LPWSTR pbuffer, DWORD cchBuffer, DWORD * dwlength); FNPTR_GET_COR_SYS_DIR GetCORSystemDirectory = NULL; Int _tmain (int argc, _TCHAR * argv []) {हिंसटस एचडीएलएल = लोड लाइब्रेरी (पाठ ("mscoree.dll")); GetCORSystemDirectory = (FNPTR_GET_COR_SYS_DIR) GetProcAddress (एचडीएलएल, "GetCorSystemDirectory"); अगर (GetCorSystemDirectory! = NULL) {टीसीएचएआर बफर [MAX_PATH]; DWORD लंबाई; HRESULT घंटा = GetCORSystemDirectory (बफर, MAX_PATH, और लंबाई); // बफर में फ़ोल्डर का नाम होना चाहिए // इसका इस्तेमाल करना है ..} 0 लौटें; }
Comments
Post a Comment