游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4215|回复: 9

帮忙啊!DirectX9程序编译问题

[复制链接]

50

主题

244

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
发表于 2004-5-30 22:02:00 | 显示全部楼层 |阅读模式
我想用DirectX9编写一个简单的窗口程序,代码是书中的,配套光盘上的也不能运行
请各位高手帮忙给我找找错误的地方,小弟感激不尽!
---------------------------------------------------------------------------------------------#include <d3d9.h>

LPDIRECT3D9   g_pD3D=NULL;
LPDIRECT3DDEVICE9  g_pd3dDevice=NULL;

HRESULT InitD3D(HWND hwnd)
{
        g_pD3D=Direct3DCreate9(D3D_SDK_VERSION);
        if(g_pD3D=NULL)return E_FAIL;

        D3DDISPLAYMODE d3ddm;
        if(FAILED(g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT,&d3ddm)))
        {
                return E_FAIL;

        }

        D3DPRESENT_PARAMETERS d3dpp;
        ZeroMemory(&d3dpp,sizeof(d3dpp));
        d3dpp.Windowed=true;
        d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;
        d3dpp.BackBufferFormat=d3ddm.Format;

        if(FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hwnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                &d3dpp,&g_pd3dDevice)))
        {
                return E_FAIL;
        }
        return S_OK;
}

VOID ClearUp()
{
        if(g_pd3dDevice!=NULL)
        {
          g_pd3dDevice->Release();
        }

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

VOID Render()
{
        if(g_pd3dDevice==NULL)
        {
                return;
        }

        g_pd3dDevice->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(0,0,255),1.0f,0);
        g_pd3dDevice->BeginScene();
        g_pd3dDevice->EndScene();
        g_pd3dDevice-&gtresent(NULL,NULL,NULL,NULL);
}

LRESULT WINAPI WinProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
        switch(msg)
        {
        case WM_DESTROY:
                PostQuitMessage(0);
            return 0;
        case WM_PAINT:
                Render();
                ValidateRect(hwnd,NULL);
                return 0;
        }
        return DefWindowProc(hwnd,msg,wParam,lParam);
}

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE,LPSTR,int)
{

        WNDCLASS wc={0,WinProc,0L,0L,hInstance,NULL,NULL,NULL,NULL,"firstd3d"};
        RegisterClass(&wc);

        HWND hWnd=CreateWindow("firstd3d","我的3D窗口",WS_POPUP|WS_MAXIMIZE,100,100,400,300,0,NULL,wc.hInstance,NULL);
       
        if(SUCCEEDED(InitD3D(hWnd)))
        {
                ShowWindow(hWnd,SW_SHOWDEFAULT);
                UpdateWindow(hWnd);

                MSG msg;
                while(GetMessage(&msg,NULL,0,0))
                {
                        TranslateMessage(&msg);
                        DispatchMessage(&msg);
                }
        }
    ClearUp();
        UnregisterClass("firstd3d",wc.hInstance);
        return 0;
}

---------------------------------------------------------------------------------------------
错误提示如下:(编译环境 Windows Xp   VC++6.0
--------------------Configuration: d3d - Win32 Debug--------------------
Compiling...
d3d.cpp
Linking...
d3d.obj : error LNK2001: unresolved external symbol _Direct3DCreate9@4
Debug/d3d.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

d3d.exe - 2 error(s), 0 warning(s)

0

主题

35

帖子

35

积分

注册会员

Rank: 2

积分
35
发表于 2004-5-30 22:41:00 | 显示全部楼层

Re:帮忙啊!DirectX9程序编译问题

少了LIB

18

主题

135

帖子

143

积分

注册会员

Rank: 2

积分
143
发表于 2004-5-31 08:37:00 | 显示全部楼层

Re:帮忙啊!DirectX9程序编译问题

工具--选择--目录
看看这里有没有 library files 和 include files里有没有包含Directx9的

50

主题

244

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
 楼主| 发表于 2004-5-31 17:51:00 | 显示全部楼层

Re:帮忙啊!DirectX9程序编译问题

谢谢各位的热心帮助,小弟已经解决问题了。

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2004-6-1 15:24:00 | 显示全部楼层

Re:帮忙啊!DirectX9程序编译问题

着么搞定的?我现在编译也这样了~下的是3.3m的sdk

50

主题

244

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
 楼主| 发表于 2004-6-1 22:53:00 | 显示全部楼层

Re:帮忙啊!DirectX9程序编译问题

你的问题解决了没?如果没解决,可以用这个步骤:
1.请确认你也是用的VC++6.0的编译环境;
2.工程-->设置-->Link;
3.在Project Options选项中的kernel32.lib前添加上你所用的静态连接库文件
例如你引用的头文件为:d3d9.h,那么你要添加的就是d3d9.lib,同时还要添加另外的一个文件 winmm.lib.
这样应该就可以正常运行了,如果还是不行,可能是你还引用了什么文件,我也不清楚了,因为我也是刚学这个的。

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2004-6-2 11:53:00 | 显示全部楼层

Re:帮忙啊!DirectX9程序编译问题

多谢 雨落寒星 帮助,果然编译通过了。。。我的第一的d3d程序俄~感动ing ;-)

50

主题

244

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
 楼主| 发表于 2004-6-2 19:17:00 | 显示全部楼层

Re: 帮忙啊!DirectX9程序编译问题

呵呵,好客气啊!那个程序也是我的第一个D3D程序呢,大家相互学习嘛,希望以后有机会合作做事,哈哈。不过我做事有点三心二意的,常常受不了游戏的诱惑……
不过我会尽量克服的,准备暑假奋斗下,把DirectX9弄懂一点点,有热情的兄弟们都努力啊 [em20] [em20] [em20]

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2004-6-3 17:38:00 | 显示全部楼层

Re:帮忙啊!DirectX9程序编译问题

同意楼上的观点~活活~大家一起努力吧

0

主题

2

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2004-6-4 21:47:00 | 显示全部楼层

Re:帮忙啊!DirectX9程序编译问题

我也是这个程序,最后编译的时候说:
D:\我的源代码\d3d\d3d.cpp(68) : error C2018: unknown character '0xa1'
D:\我的源代码\d3d\d3d.cpp(68) : error C2018: unknown character '0xa1'
请哪位大虾赐教一下,谢谢!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-1 14:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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