【发布时间】:2010-12-27 00:52:25
【问题描述】:
在 Windows 中,似乎至少有两种方法可以访问帧缓冲区:GDI 和 DirectX。
问题在于,为了使用 GDI 或 DirectX,您似乎必须运行一个 GUI 应用程序,然后您可以从该应用程序调用适当的 GDI 和 DirectX 函数。例如:
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// Insert frame buffer reading via GDI here.
return 0;
}
但是,我希望创建一个包含一个函数的模块,该函数将读取帧缓冲区的内容并将其保存为图像。该模块将与更大的应用程序链接。
那么,我如何在不运行实际 GUI 应用程序的情况下创建此模块?
【问题讨论】:
-
哪个帧缓冲?每个窗口都有自己的,窗口管理器每个显示器至少有一个...
-
保存整个桌面的帧缓冲区。
-
当 Windows 2000 引入多层窗口并且在 Vista 中默认启用桌面合成时,情况不再是这样