游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1470|回复: 3

direct3d 出错了

[复制链接]

16

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2004-9-5 12:22:00 | 显示全部楼层 |阅读模式
我用的是c++builder 6
代码如下
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include<d3d9.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#define  Error(str)  MessageBox(NULL,str,NULL,NULL)
TForm1 *Form1;
LPDIRECT3D9  g_pD3D=NULL;
LPDIRECT3DDEVICE9  g_pd3dDevice=NULL;
HRESULT   InitD3D(HWND  hWnd)
{
        if(NULL==(g_pD3D=Direct3DCreate9(D3D_SDK_VERSION)))
        {
                Error("Direct3D create failed!");
                return E_FAIL;
        }
        D3DDISPLAYMODE  d3ddm;
        if(FAILED(g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT,&d3ddm)))
        {
                Error("Get display mode failed!");
                return E_FAIL;
        }
        D3DPRESENT_PARAMETERS d3dpp;
        ZeroMemory(&d3dpp,sizeof(d3dpp));
        d3dpp.Windowed=TRUE;
        d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;
        d3dpp.BackBufferFormat;
        if(FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,
                hWnd,D3DCREATE_HARDWARE_VERTEXPROCESSING,&d3dpp,&g_pd3dDevice)))
                {
                        Error("Create device failed!");
                        return E_FAIL;
                }
         return S_OK;      
}
void Cleanup()
{
        if(NULL!=g_pd3dDevice)
        if(g_pd3dDevice->Release())
        g_pd3dDevice=NULL;

        if(NULL!=g_pD3D)
        if(g_pD3D->Release())
        g_pD3D=NULL;

}
void Render()
{
        if(NULL==g_pd3dDevice)
        return ;
        g_pd3dDevice->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(128,128,128),1,0);
        g_pd3dDevice->BeginScene();
        g_pd3dDevice->EndScene();
        g_pd3dDevice-&gtresent(NULL,NULL,NULL,NULL);
}


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------



void __fastcall TForm1::RenderTimerTimer(TObject *Sender)
{
Render();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
Cleanup();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
InitD3D(PerspectivePanel->Handle);        
}
//---------------------------------------------------------------------------
错误如下
[Linker Error] Unresolved external 'Direct3DCreate9' referenced from E:\PROJECTS\3DMODELEDITOR\UNIT1.OBJ

为十么会出现这样的错误,我加了$(d3d9)\Lib;$(BCB)\Lib;$(BCB)\Bin;$(BCB)\Imports;$(BCB)\Projects\Bpl;$(BCB)\Projects\Lib

68

主题

710

帖子

719

积分

高级会员

Rank: 4

积分
719
QQ
发表于 2004-9-5 12:28:00 | 显示全部楼层

Re:direct3d 出错了

把dx9sdk的目录加入到开发环境中
为什么不用.net2003呢?

16

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
 楼主| 发表于 2004-9-5 12:36:00 | 显示全部楼层

Re:direct3d 出错了

我用的是c++builder,不是vc++,不能加目录

28

主题

685

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2004-9-5 13:58:00 | 显示全部楼层

?不能加目录,开玩笑吧,其他你不是没加目录,是没有

rt
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-18 02:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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