游戏开发论坛

 找回密码
 立即注册
搜索
查看: 12906|回复: 6

Direct3DCreate9出错??

[复制链接]

5

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2005-11-25 21:24:00 | 显示全部楼层 |阅读模式
#include "stdafx.h"
#include <d3d9.h>
LRESULT CALLBACK mainproc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);

LPDIRECT3D9 idirect=NULL;
LPDIRECT3DDEVICE9 idevice=NULL;
HRESULT Inital3D(HWND hwnd)
{
if(NULL == (idirect =Direct3DCreate9(D3D_SDK_VERSION)))
        return E_FAIL;
D3DDISPLAYMODE mod;
if(FAILED(idirect->GetAdapterDisplayMode(D3DADAPTER_DEFAULT,&mod)))
return E_FAIL;
D3DPRESENT_PARAMETERS param;
ZeroMemory(&param,sizeof(param));
param.Windowed=true;
param.SwapEffect=D3DSWAPEFFECT_DISCARD;
param.BackBufferFormat=mod.Format;
if(FAILED(idirect->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hwnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&param,&idevice)))
   return E_FAIL;
return S_OK;
}

请问一下,我执行程序的时候,它出现错误:4 error LNK2019: 无法解析的外部符号 _Direct3DCreate9@4 ,该符号在函数 "long __cdecl Inital3D(struct HWND__ *)" (?Inital3D@@YAJPAUHWND__@@@Z) 中被引用
,是什么原因阿?

8

主题

68

帖子

68

积分

注册会员

Rank: 2

积分
68
发表于 2005-11-25 22:32:00 | 显示全部楼层

Re:Direct3DCreate9出错??

1。在Tools->Options->Directories里设置目录(包含文件和Lib文件)。
2。用#pragma comment(lib,"xxx.lib")命令加入相应的lib文件。
3。必要时可能还要加上 #pragma comment(lib,"winmm.lib")这个命令防止出现无法解析的外部符号_tmptime...(记不清了,不知道这个函数名对不对)的错误。

ps:用的是VC++6.0(SP6)

我是一个刚从VB中转来学C++的人,但VB我还要继续学,我经常也遇到这种问题,甚至连别人写好的代码我都无法编译,郁闷~,这是我用半天时间才找到的方法,当时我用此方法成功编译了DX9 SDK 10月里的Tutorials例子.不知道对你有没有用。
   

12

主题

70

帖子

70

积分

注册会员

Rank: 2

积分
70
发表于 2005-11-26 09:51:00 | 显示全部楼层

Re:Direct3DCreate9出错??

楼上的解释的差不多了,出现无法解析的外部符号一般都是没有添加对应的库文件
根据前面提示的函数名称,在MSDN里面可以查到使用该函数时需要包含的库文件
上面说的winmm.lib一般在使用了timeGetTime()函数后需要包含该库
搂住的问题就是要包含d3d9.lib,d3dx9.lib就行了,可以在项目的设置-〉链接选项里填入需要添加的库,用逗号分开也可以在程序中用#pragma comment(lib,"xxx.lib")命令加入相应的lib文件

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-11-26 10:20:00 | 显示全部楼层

Re:Direct3DCreate9出错??

编译期问题,跟函数无关。加上适当的lib。

5

主题

217

帖子

222

积分

中级会员

Rank: 3Rank: 3

积分
222
发表于 2005-11-27 13:05:00 | 显示全部楼层

Re:Direct3DCreate9出错??

晕死......

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-11-27 13:35:00 | 显示全部楼层

Re:Direct3DCreate9出错??

这种帖子不是第一次出现了。。。

182

主题

445

帖子

459

积分

中级会员

Rank: 3Rank: 3

积分
459
QQ
发表于 2005-11-27 14:58:00 | 显示全部楼层

Re:Direct3DCreate9出错??

   唉,任重而道远啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 18:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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