游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2512|回复: 8

DirectDraw的初学者,请大家帮帮忙!(急)

[复制链接]

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2005-1-22 22:30:00 | 显示全部楼层 |阅读模式
#include <ddraw.h>
LPDIRECTDRAW7 lpDD; // DirectDraw对象的指针
LPDIRECTDRAWSURFACE7 lpDDSPrimary; // DirectDraw主页面的指针
LPDIRECTDRAWSURFACE7 lpDDSBuffer; // DirectDraw后台缓存的指针
LPDIRECTDRAWSURFACE7 lpDDSBack; // 存放背景图的页面的指针

BOOL InitDDraw( )
{
     DDSURFACEDESC2 ddsd; // DirectDraw的页面描述
     if ( DirectDrawCreateEx (NULL, (void **)&lpDD, IID_IDirectDraw7, NULL) != DD_OK )
                return FALSE; //创建DirectDraw对象
          //这里使用了 if ( xxx != DD_OK) 的方法进行错误检测,这是最常用的方法
if (lpDD->SetCooperativeLevel(hwnd,DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN) != DD_OK )
return FALSE; //设置DirectDraw控制级
if ( lpDD->SetDisplayMode( 640, 480, 32, 0, DDSDM_STANDARDVGAMODE ) != DD_OK )
return FALSE; //设置显示模式
        //开始创建主页面,先清空页面描述
        memset(&ddsd, 0, sizeof(DDSURFACEDESC2));
        //填充页面描述
ddsd.dwSize = sizeof( ddsd );
        ddsd.dwFlags = DDSD_CAPS|DDSD_BACKBUFFERCOUNT; //有后台缓存
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE|DDSCAPS_FLIP|DDSCAPS_COMPLEX;
        ddsd.dwBackBufferCount = 1; //一个后台缓存
     if ( lpDD->CreateSurface( &ddsd, &lpDDSPrimary, NULL ) != DD_OK )
              return FALSE; //创建主页面
        ddsd.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER; //这是后台缓存
if ( DD_OK != lpDDSPrimary->GetAttachedSurface( &ddsd.ddsCaps, &lpDDSBuffer ) )
                return FALSE; //创建后台缓存
        ddsd.dwSize = sizeof( ddsd );
        ddsd.dwFlags = DDSD_CAPS|DDSD_WIDTH|DDSD_HEIGHT;
        ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; //这是离屏页面
        ddsd.dwHeight=480; //高
        ddsd.dwWidth=640; //宽
        if ( DD_OK != lpDD->CreateSurface( &ddsd, &lpDDSBack, NULL ) )
                return FALSE; //创建放背景图的页面
        //如还有别的页面可在此处继续创建
        return TRUE;
}
我是DirectDraw的初学者,上面的源程序是从教程上考下来的,但是compile的时候出现以下的errors,实在是搞不懂!
请高手赐教!
Wndpro.cpp
E:\_My Code\Vc++win32pro\Wndpro\Wndpro.cpp(2) : error C2146: syntax error : missing ';' before identifier 'lpDD'
E:\_My Code\Vc++win32pro\Wndpro\Wndpro.cpp(2) : error C2501: 'LPDIRECTDRAW7' : missing storage-class or type specifiers
E:\_My Code\Vc++win32pro\Wndpro\Wndpro.cpp(2) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

Wndpro.obj - 3 error(s), 0 warning(s)

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20686
发表于 2005-1-22 22:44:00 | 显示全部楼层

Re:DirectDraw的初学者,请大家帮帮忙!(急)

检查一下你的VC是否设置了DX SDK的包含文件路径

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2005-1-24 12:13:00 | 显示全部楼层

Re: DirectDraw的初学者,请大家帮帮忙!(急)

当然设置啦,就是在GAMERES下载的DX8.1嘛!还有可能是什么问题啊?

32

主题

377

帖子

378

积分

中级会员

Rank: 3Rank: 3

积分
378
发表于 2005-1-24 18:27:00 | 显示全部楼层

Re:DirectDraw的初学者,请大家帮帮忙!(急)

include里面设置了路径了吗?

上面的错误很明显是设置的问题。

11

主题

114

帖子

118

积分

注册会员

Rank: 2

积分
118
QQ
发表于 2005-1-24 21:29:00 | 显示全部楼层

Re:DirectDraw的初学者,请大家帮帮忙!(急)

Project Settings->Link->Object/library modules包含库文件了么?

77

主题

203

帖子

279

积分

中级会员

Rank: 3Rank: 3

积分
279
发表于 2005-1-25 16:15:00 | 显示全部楼层

Re:DirectDraw的初学者,请大家帮帮忙!(急)

是Project Settings->Link下没有包含.lib文件

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2005-1-25 22:28:00 | 显示全部楼层

Re: DirectDraw的初学者,请大家帮帮忙!(急)

搞不懂啊实在是搞不懂!教程上所说的将ddraw.lib,dxguid.lib添加到你的工程到底是什么含义呢?!
我在TOOLS->OPTIONS中将DX81的include files和library files都设置了!

在预编译中也添加了以下的代码:
#include <ddraw.h>
#pragma comment(lib,"ddraw.lib")
#pragma comment(lib,"dxguid.lib")

在Project Settings->Link->Object/library modules中添加了ddraw.lib dxguid.lib
并确定!

在fileview视图中也能看到ddraw.h、ddraw.lib以及dxguid.lib文件了,但是编译还是有以下的相同错误:
error C2146: syntax error : missing ';' before identifier 'lpDDraw'
error C2501: 'LPDIRECTDRAW7' : missing storage-class or type specifiers
fatal error C1004: unexpected end of file found

18

主题

116

帖子

116

积分

注册会员

Rank: 2

积分
116
发表于 2005-1-26 12:41:00 | 显示全部楼层

Re:DirectDraw的初学者,请大家帮帮忙!(急)

装.net就什么就不用设置,直接在代码里加上
#pragma comment(lib,"ddraw.lib")
#pragma comment(lib,"dxguid.lib")
就ok了。
我也是菜鸟,问一下楼主,哪里的教程,我也想学。

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
发表于 2005-1-26 12:45:00 | 显示全部楼层

Re:DirectDraw的初学者,请大家帮帮忙!(急)

在DDRAW。H前有没有加上WINDOWS。H啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-24 04:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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