C # Работа с устройством и поверхностью для скриншотов игр - PullRequest
0 голосов
/ 01 сентября 2011

Я недавно узнал о классе поверхностей и устройств, который может решить мои проблемы с созданием скриншотов в полноэкранной игре direct3d.

Я пробовал следовать этой статье: самый быстрый способ захвата снимков экрана игры вc #? (более 20 изображений в секунду)

Первый метод, который я попробовал:

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))

Iзапутался от этой другой статьи.Кто-нибудь с опытом в этой области может разобраться?

1 Ответ

0 голосов
/ 01 сентября 2011

Кажется, вам не хватает файла, который поставляется с Compact Framework . Попробуйте установить / переустановить компактный фреймворк

...