2012-05-16 90 views
0

我有一个小程序(在Visual Studio 2010专业版)编译并以调试模式运行,尽管GetClientRect调用在代码编辑器中以红色下划线。尽管在所有对GetClientRect的调用中都报告了“找不到标识符”的错误消息,但代码并未在发布模式下编译。标识符GetClientRect未找到

我可以在控制台程序中使用以下代码重现这一点,除了这我现在甚至无法在调试模式下编译。任何提示?

#include "stdafx.h" 
#include <Windows.h> 


int _tmain(int argc, _TCHAR* argv[]) 
{ 
    HWND hwnd = FindWindow(NULL, NULL); 
    RECT r; 
    GetClientRect(hwnd, &r); 
    return 0; 
} 
+1

这是不可能解释与提供的信息。看看WinUser.h文件,看看它发生了什么。 –

+0

Try :: GetClientRect而不仅仅是GetClientRect。 – Stefan

+0

现货,汉斯。我对文件做了一些无意的更改。 – 72con

回答

-1

调用GetClientRect在控制台中没有意义,因为控制台应用程序没有Window对象。

+1

虽然他们可以创建并与Windows沟通。 – Deanna

+0

他们还可以从其他进程中找到窗口并获取有关这些信息的信息 - 这似乎是OP在此处执行的操作。控制台应用程序也可以拥有自己的窗口(除了控制台之外 - 只要它们具有合适的消息循环,就像任何基于窗口的应用程序必须具备的一样);虽然有些不寻常的做法,但Win32中没有任何东西阻止它。 – BrendanMcK