我在嘗試在Windows XP上使用C++捕獲屏幕截圖時出現問題。使用C++和cygwin sshd服務的黑屏截圖
的代碼與此類似:
hDc = CreateCompatibleDC(0);
hBmp = CreateCompatibleBitmap(GetDC(0), width, height);
HGDIOBJ obj = SelectObject(hDc, hBmp);
BitBlt(hDc, 0, 0, width, height, GetDC(0), 0, 0, SRCCOPY);
運行良好的機器上正常,但是當我使用ssh登錄到cygwin外殼我只是得到一個黑色的屏幕截圖運行相同的代碼。 BitBlt
返回0,GetLastError
返回6表示無效句柄。但是沒有一個手柄是0.所以我怎麼能做到這一點,我對於究竟是什麼問題有點失落。
是的,我想知道我能否以某種方式獲得許可。 – Zitrax 2011-04-08 15:36:12
'GetDC(0)'爲其自己的私人桌面返回一個DC,沒有應用程序正在運行,因此它是黑色的。 – 2011-04-08 15:41:33
@Ben,這不會解釋從BitBlt返回的錯誤。我確定位圖是黑色的,因爲它是如何初始化的。 – 2011-04-08 15:45:32