我想用GetMonitorInfo()函数,查MSDN时说在"Header: Declared in winuser.h."
于是就
#include "stdio.h"
#include "iostream.h"
#include "windows.h"
#include "winuser.h"
理论上说时没错的了,可时Complie时就来
error C2065: 'GetMonitorInfo' : undeclared identifier
我晕~
后来在加上#include <multimon.h> Complie时通过。
可时Buile时有来一个
error LNK2001: unresolved external symbol _xGetMonitorInfo@8
这为什么呢?各位有什么解决方法?

解决方案 »

  1.   

    msdn的上方还有一句话
    “[This is preliminary documentation and subject to change.] ”
    呵呵!
      

  2.   

    preliminary documentation -----预备文档,即,可能这个功能还没有实现,呵呵
      

  3.   

    不是吧!我用VB都可以。声明是在user32.dll里。真晕!
      

  4.   

    winuser.h是包含在windows.h内的。
      

  5.   

    包不包含也没关系啊。总不可能再Inlcude一次就不行吧.
      

  6.   

    你再看msdn的最后
    QuickInfo
      Windows NT: Requires version 5.0 or later.而你的版本不满足,事实上,在winuser.h中关于GetMonitorInfo的定义也是在
    #if(WINVER >= 0x0500)
    WINUSERAPI BOOL WINAPI GetMonitorInfoA(HMONITOR hMonitor, LPMONITORINFO lpmi);
    WINUSERAPI BOOL WINAPI GetMonitorInfoW(HMONITOR hMonitor, LPMONITORINFO lpmi);
    #endif的条件编译的。
    所以要想用这个函数,只需在stdafx.h中定义
    #define WINVER  0x0500  即可
    或者在settings中设置预编译条件:
    WINVER = 0x0500
      

  7.   

    Freshyy(云淡风清)讲得对。现在可以了。不过还是有点纳闷!MSDN也没有指明要Win2K以上的系统……QuickInfo:
      Windows NT: Requires version 5.0 or later.
      Windows: Requires Windows 98.
      Windows CE: Unsupported.
      Header: Declared in winuser.h.
      Import Library: Use user32.lib.
      Unicode: Implemented as Unicode and ANSI versions on Windows NT.