C#使用Device& Surface到截图游戏

时间:2011-09-01 11:46:37

标签: c# directx screen-capture

我最近发现了表面和表面。设备类可以解决我在截屏全屏直接3D游戏时遇到的问题。

我尝试过这篇文章:fastest method to capture game screen shots in c#?(more than20 images per second)

我尝试的第一种方法是:

Device device = new Device(0, DeviceType.Default, GetForegroundWindow(), CreateFlags.None, new PresentParameters());
Surface s2 = device.CreateImageSurface(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, Format.A8R8G8B8);
device.GetFrontBuffer(s2);
SurfaceLoader.Save("c:\\Screenshot.bmp", ImageFileFormat.Bmp, s2);
我试过的第二种方法是:

Device device = new Device(0, DeviceType.Default, GetForegroundWindow(), CreateFlags.None, new PresentParameters());
Surface s1 = device.GetBackBuffer(0, BackBufferType.Mono);
device.GetFrontBuffer(s1);

在两种方法中,设备都会报告它找不到的dll(无法加载DLL'netcfd3dm2_0.dll':找不到指定的模块。(HRESULT异常:0x8007007E))

我对其他文章感到困惑。有这方面经验的人可以解决问题吗?

1 个答案:

答案 0 :(得分:0)

似乎您遗失了Compact Framework附带的文件。尝试安装/重新安装紧凑的框架