游戏开发论坛

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

求大大们看看小弟的代码,很简单的

[复制链接]

1

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2011-7-26 10:28:00 | 显示全部楼层 |阅读模式
小弟正在学龙书,遇到了字体创建的问题,问题在下面代码标示出来了!
#include "d3dUtility.h"

IDirect3DDevice9* Device = 0;
const int Width = 800;
const int Height = 600;
ID3DXFont* Font = 0;
DWORD FrameCnt = 0;
float timeElapsed = 0;
float FPS = 0;
char FPSstring[9];

bool Setup()
{

        D3DXFONT_DESC desc = {
                50,
                25,
                0,
                0,
                false,
                DEFAULT_CHARSET,
                OUT_TT_PRECIS,
                CLIP_DEFAULT_PRECIS,
                DEFAULT_PITCH,
                ""};
        strcpy(desc.FaceName, "Time New Roman");
////////////////////////////////////问题在这里!!!!!/////////////////////////////////////

//        D3DXCreateFontIndirect(Device, &desc, &Font);

        if(FAILED(D3DXCreateFontIndirect(Device, &desc, &Font)));
        {
                ::MessageBox(0, "Error", 0, 0);
                :ostQuitMessage(0);
        }

        return true;
}
///////////////////////////////////////////////////////////////////////////////////////////////////
//这样运行函数会弹出错误窗口,然我把这个检查创建字体的函数去掉,直接创建不检查,程序却能正常运行,我与源程序       照,完全一样(其实龙书对这个内容的代码是错误的,翁先生翻译的,我是对照其他的书改过来的,有这个判定函数照样运 行)。求大大们解析,本人求知若渴,万分感激!
void Cleanup()
{
        d3d::Release<ID3DXFont*>(Font);

}

bool Display(float timeDelta)
{
        if(Device)
{
        FrameCnt++;
        timeElapsed += timeDelta;
        if(timeElapsed >= 1.0f)
        {
                FPS = (float)FrameCnt / timeElapsed;
                sprintf(FPSstring, "%f", FPS);
                FPSstring[8] = '\0';
                FrameCnt = 0;
                timeElapsed = 0.0f;
        }
        Device->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 1.0f, 0);
        Device->BeginScene();
        RECT rect = {0, 0, Width, Height};
        Font->DrawText(
                NULL,
                FPSstring,
                -1,
                &rect,
                DT_LEFT | DT_TOP,
                0xff000000
        );
        Device->EndScene();
        Device-&gtresent(0,0,0,0);
}
        return true;
}

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2011-7-26 11:08:00 | 显示全部楼层

Re: 求大大们看看小弟的代码,很简单的

随波逐流piao: 求大大们看看小弟的代码,很简单的
这样运行函数会弹出错误窗口
然我把这个检查创建字体的函数去掉,直接创建不检查,程序却能正常运行

你看看错误窗口里写了什么内容不就好了吗?

1

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2011-7-26 11:24:00 | 显示全部楼层

Re:求大大们看看小弟的代码,很简单的

就是MessageBox(0, "Error", 0, 0)这个错误窗口,,,

0

主题

28

帖子

68

积分

注册会员

Rank: 2

积分
68
发表于 2011-7-26 11:29:00 | 显示全部楼层

Re:求大大们看看小弟的代码,很简单的

if(FAILED(D3DXCreateFontIndirect(Device, &desc, &Font)));

没看最后多了个分号吗 ,后面必然退出

0

主题

54

帖子

139

积分

注册会员

Rank: 2

积分
139
发表于 2011-7-26 12:01:00 | 显示全部楼层

Re:求大大们看看小弟的代码,很简单的

分号....

10

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
QQ
发表于 2011-7-26 12:44:00 | 显示全部楼层

Re:求大大们看看小弟的代码,很简单的

肯定又是抄的吧,上哪抄的代码啊?

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2011-7-26 13:33:00 | 显示全部楼层

Re:求大大们看看小弟的代码,很简单的

耽误时间....没看置顶贴吗? [em21]

1

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2011-7-26 13:51:00 | 显示全部楼层

Re:求大大们看看小弟的代码,很简单的

啊,确实,看这错的,太不小心了,谢谢各位了哈,太麻烦了,呵呵!!这代码是龙书上的,我也是在学习

1

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2011-7-26 14:13:00 | 显示全部楼层

Re:求大大们看看小弟的代码,很简单的

看了下置顶帖,发现我真的犯错误了,真的对不起大家啊,以后会注意了,新来的,很多规矩不懂,望大家别记在本本上哈,在此再次道个歉
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 12:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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