-
大小: 19.86 KB文件類型: .rar金幣: 1下載: 0 次發布日期: 2024-10-16
- 語言: 其他
- 標簽: DirectDraw??顯存??寫屏??
資源簡介
通過 DirectDraw 直接修改顯存數據
代碼片段和文件信息
//?1233.cpp?:?定義應用程序的入口點。
//
#include?“stdafx.h“
#include?“1233.h“
#include?
#include?
#include?“winsock2.h?“
using?namespace?std;
#define?MAX_LOADSTRING?100
LPDIRECTDRAW?lpDD;
LPDIRECTDRAWSURFACE?lpDDSPrimary;?
LPDIRECTDRAWSURFACE?lpDDSBack;?
//?全局變量:
HINSTANCE?hInst; //?當前實例
TCHAR?sztitle[MAX_LOADSTRING]; //?標題欄文本
TCHAR?szWindowClass[MAX_LOADSTRING]; //?主窗口類名
int?APIENTRY?_tWinMain(HINSTANCE?hInstance
?????????????????????HINSTANCE?hPrevInstance
?????????????????????LPTSTR????lpCmdLine
?????????????????????int???????nCmdShow)
{
DDSURFACEDESC?t;
HWND?desktop;
desktop?=?GetDesktopWindow();
HDC?hDC?=?::GetDC(desktop);
DDSURFACEDESC?ddsd;
DDSCAPS?ddscaps;
HRESULT?ddrval;
BYTE?*Bitmap;
ddrval?=?DirectDrawCreate(?NULL?&lpDD?NULL?);
if(?ddrval?!=?DD_OK?)
{
printf(“error/n“);
}
ddrval?=?lpDD->SetCooperativeLevel(desktop?DDSCL_EXCLUSIVE?|?DDSCL_FULLSCREEN?);
if(?ddrval?!=?DD_OK?)
{
lpDD->Release();
printf(“error/n“);
}
ddrval?=?lpDD->SetDisplayMode(?1440?900?32);
if(?ddrval?!=?DD_OK?)
{
lpDD->Release();
printf(“error/n“);
}
memset(?&ddsd?0?sizeof(ddsd)?);
ddsd.dwSize?=?sizeof(?ddsd?);
ddsd.dwFlags?=?DDSD_CAPS?|?DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps?=?DDSCAPS_PRIMARYSURFACE?|?DDSCAPS_FLIP?|?DDSCAPS_COMPLEX;
ddsd.dwBackBufferCount?=?1;
ddrval?=?lpDD->CreateSurface(?&ddsd?&lpDDSPrimary?NULL?);
if(?ddrval?!=?DD_OK?)
{
lpDD->Release();
printf(“error/n“);
}
ddscaps.dwCaps?=?DDSCAPS_BACKBUFFER;
ddrval?=?lpDDSPrimary->GetAttachedSurface(&ddscaps?&lpDDSBack);
if(?ddrval?!=?DD_OK?)
{
lpDDSPrimary->Release();
lpDD->Release();
printf(“error/n“);
}
memset(&ddsd?0?sizeof(ddsd)?);
ddsd.dwSize?=?sizeof(?ddsd?);
ddrval?=?lpDDSPrimary->Lock(NULL?&ddsd?DDLOCK_WAIT?NULL);
Bitmap?=?(BYTE*)ddsd.lpSurface;
while(1)
{
int?pos;
for?(int?y=0;y<480;?y++)
{
pos=y*ddsd.lPitch;
for?(int?x=0;?x<640;?x++)
{
Bitmap[pos]?=0;?//R
pos++;
Bitmap[pos]?=0;?//G
pos++;
Bitmap[pos]?=0;?//B
pos++;
Bitmap[pos]?=?100;?//A
pos++;
}
}
lpDDSPrimary->Unlock(&ddsd);//unlock
}
//printf(“%d/n“?ddsd.dwWidth);
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2318??2011-12-30?17:30??dx直接寫屏\1233.cpp
?????文件?????????39??2011-12-29?14:23??dx直接寫屏\1233.h
?????文件??????23558??2003-04-07?06:16??dx直接寫屏\1233.ico
?????文件???????2803??2011-12-29?14:23??dx直接寫屏\1233.rc
?????文件????????868??2011-12-29?14:44??dx直接寫屏\1233.sln
????..A..H.?????11264??2011-12-30?17:31??dx直接寫屏\1233.suo
????..A..H.??????8704??2011-12-29?14:33??dx直接寫屏\1233.suo.old
?????文件???????5016??2011-12-29?14:47??dx直接寫屏\1233.vcproj
?????文件???????1575??2011-12-29?14:23??dx直接寫屏\ReadMe.txt
?????文件????????675??2011-12-29?14:23??dx直接寫屏\Resource.h
?????文件??????23558??2003-04-07?06:16??dx直接寫屏\small.ico
?????文件????????208??2011-12-29?14:23??dx直接寫屏\stdafx.cpp
?????文件????????365??2011-12-29?14:23??dx直接寫屏\stdafx.h
?????目錄??????????0??2012-01-06?15:04??dx直接寫屏
-----------?---------??----------?-----??----
????????????????80951????????????????????14
評論
共有 條評論