测试代码:void CTestDlg::OnButton1() 
{
// TODO: Add your control notification handler code here
WINDOWINFO wi;
RECT rcWnd, rcClient; ::GetWindowInfo(GetSafeHwnd(), &wi);
rcWnd = wi.rcWindow;
rcClient = wi.rcClient;
}
编译时总报错:
error C2065: 'WINDOWINFO' : undeclared identifier
error C2039: 'GetWindowInfo' : is not a member of '`global namespace''
error C2065: 'GetWindowInfo' : undeclared identifier但是换成函数::GetWindowRect(GetSafeHwnd(), &rcWnd)就没有问题了。WHY?

解决方案 »

  1.   

    因为你没有包含头文件
    这个是API函数,需要包含"Winuser.h" 或 "Windows.h"
    不过如果在MFC下用可能会和MFC库冲突吧!
      

  2.   

    或者在你的stdafx.h的最上面定义#define  WINVER 0x0500
      

  3.   

    把::GetWindowInfo();改为GetWindowInfo();
      

  4.   

    多谢 kingcom_xu(用什么来调试你,我的世界) ,用你提供的第二种方法BUILD成功。
    但是能否给以解释,或者给些相关的链接?
    另,如何更新platform sdk?
      

  5.   

    可能vc98自带的sdk头文件有误,他把windowinfo相关的定义放在了
    #if(WINVER >= 0x0500)#endif /* WINVER >= 0x0500 */
    中间,所以你得在你的工程中指定你的项目是winver>=0x0500的新的platform sdk不存在这个问题.platform sdk可从MS官方网站下载
    http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm