से लिंक करते समय मैं एक ऑब्जेक्ट फ़ाइल को लिंक करने का प्रयास कर रहा हूं जो winuser.h में घोषित दो विधियों का उपयोग करता है और User32.dll: GetMonitorInfo और WindowFromMonitor में परिभाषित किया गया है। स्रोत ठीक एक वस्तु फाइल करने के लिए संकलित, लेकिन जब मैं लिंक करने के लिए प्रयास करते हैं, मैं निम्न त्रुटि आउटपुट प्राप्त:Link32 त्रुटि उपयोगकर्ता32.dll
D3dCtx.obj : error LNK2001: unresolved external symbol xGetMonitorInfo
D3dCtx.obj : error LNK2001: unresolved external symbol xMonitorFromWindow
बात है, मैं "xGetMonitorInfo" या "xMonitorFromWindow" कहते हैं नहीं है। सभी स्रोत फ़ाइलों पर grep चलाना दिखाता है कि केवल "GetMonitorInfo" और "WindowFromMonitor" कहा जा रहा है। मैं windows.h सहित ठीक से हूँ, जिसमें winuser.h शामिल है। मैं लिंकर विकल्पों में भी अपनी LIBPATH को ठीक से सेट कर रहा हूं, जिसे वर्बोज़ लिंक आउटपुट द्वारा पुष्टि की जाती है।
निम्नलिखित भी मेरी वर्बोज़ लिंक आउटपुट में प्रकट होता है:
Found __imp_GetMonitorInfoA
Referenced in nafxcw.lib(afxribboncategory.obj)
Referenced in nafxcw.lib(afxtooltipctrl.obj)
Referenced in nafxcw.lib(afxribbonkeytip.obj)
Referenced in nafxcw.lib(afxfullscreenimpl.obj)
Referenced in nafxcw.lib(afxframeimpl.obj)
Referenced in nafxcw.lib(afxglobalutils.obj)
Referenced in nafxcw.lib(afxdropdowntoolbar.obj)
Referenced in nafxcw.lib(wincore.obj)
Referenced in nafxcw.lib(afxglobals.obj)
Referenced in nafxcw.lib(afxpopupmenu.obj)
Referenced in nafxcw.lib(afxpropertygridtooltipctrl.obj)
Loaded User32.lib(USER32.dll)
Found __imp_MonitorFromWindow
Referenced in nafxcw.lib(wincore.obj)
Loaded User32.lib(USER32.dll)
इसके अलावा, GetMonitorInfo रूप winuser.h में परिभाषित किया गया है:
WINUSERAPI
BOOL
WINAPI
GetMonitorInfoA(
__in HMONITOR hMonitor,
__inout LPMONITORINFO lpmi);
WINUSERAPI
BOOL
WINAPI
GetMonitorInfoW(
__in HMONITOR hMonitor,
__inout LPMONITORINFO lpmi);
#ifdef UNICODE
#define GetMonitorInfo GetMonitorInfoW
#else
#define GetMonitorInfo GetMonitorInfoA
#endif // !UNICODE
जब मैं सभी संदर्भ के लिए "GetMonitorInfo" बदल "करने के लिए GetMonitorInfoA ", मुझे केवल
D3dCtx.obj: त्रुटि LNK2001: अनसुलझा बाहरी प्रतीक xMonitorFromWindow
मेरे लिंकर त्रुटि आउटपुट के रूप में। दुर्भाग्यवश, MonitorFromWindow में कई संस्करण उपलब्ध नहीं हैं।
मुझे ध्यान रखना चाहिए कि मैं पुस्तकालयों, लिंक और सीएल के 64 बिट संस्करणों का उपयोग कर रहा हूं।
यहां क्या हो रहा है, और मैं अपने प्रोग्राम को सफलतापूर्वक कैसे लिंक कर सकता हूं?
मैक्रो परेशानी की तरह क्वैक। X ## –
के लिए Grep ठीक है, मुझे ऐसा मैक्रो नहीं मिला जो इसका कारण बन रहा था, और केवल एक फ़ाइल इन कार्यों को संदर्भित करती है। हालांकि, आपकी टिप्पणी ने मुझे मैक्रोज़ का उपयोग करके समस्या के आसपास काम करने के लिए प्रेरित किया। यह सबसे अच्छा समाधान नहीं है (और यह मुझे थोड़ा दर्द देता है), लेकिन इस कोड को वास्तव में संकलित करने की आवश्यकता है, बनाए रखा नहीं है। –