游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2432|回复: 1

ddraw时碰到的问题

[复制链接]

5

主题

5

帖子

39

积分

注册会员

Rank: 2

积分
39
发表于 2013-6-21 17:47:29 | 显示全部楼层 |阅读模式
本帖最后由 zzx6851963 于 2013-6-21 17:49 编辑

代码入下
if (FAILED(DirectDrawCreateEx(NULL, (void **)&lpdd, IID_IDirectDraw7, NULL)))                return 0;       desktop = GetDesktopWindow();      HDC hdc= ::GetDC(desktop);      
if (FAILED(lpdd->SetCooperativeLevel(desktop,                 
DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN)))               
return 0;
if (FAILED(lpdd->SetDisplayMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, 0, 0)))                return 0;
DDRAW_INIT_STRUCT(ddsd);      
ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;               
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE  | DDSCAPS_COMPLEX | DDSCAPS_FLIP;      ddsd.dwBackBufferCount = 1;      
if (FAILED(lpdd->CreateSurface(&ddsd, &lpddsprimary, NULL)))               
return 0;
        // 请求一个后备缓冲      
  ddsd.ddsCaps.dwCaps        = DDSCAPS_BACKBUFFER;                // 得到后备缓冲      
if (FAILED(lpddsprimary->GetAttachedSurface(&ddsd.ddsCaps, &lpddsback)))               
return 0;
DDRAW_INIT_STRUCT(ddsd);
        if (FAILED(lpddsback ->Lock(NULL,&ddsd,  DDLOCK_WAIT,NULL)))               
return 0;
BYTE* video_buffer;      
video_buffer= (BYTE*)ddsd.lpSurface;   
int pos=0;
if (FAILED(lpddsback ->Unlock(NULL)))               
return 0;

为什么 ddsd.lpSurface 里的页面数据为0呢  奇怪   我想读取桌面的页面数据



201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2013-6-22 22:04:51 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-26 18:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表