2012-05-16 89 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