又杯具了,无语的静态链接库。Directx的链接库

EstherT 2012-02-06 06:03:05
1>d3dUtility.obj : error LNK2019: 无法解析的外部符号 "bool __cdecl d3d::InitD3D(struct HINSTANCE__ *,int,int,bool,enum _D3DDEVTYPE,struct IDirect3DDevice9 * *)" (?InitD3D@d3d@@YA_NPAUHINSTANCE__@@HH_NW4_D3DDEVTYPE@@PAPAUIDirect3DDevice9@@@Z),该符号在函数 _WinMain@16 中被引用


为什么这次有会这样了?
#include<d3dx9.h>
#include<d3d9.h>
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
#pragma comment(lib,"user32.lib")
#pragma comment(lib,"winmm.lib")
已经都包含了呀。上次好了,这次换个方法结果又这样了。。
如果需要代码说下。。在线求助o(︶︿︶)o 唉。。郁闷的VS2010
...全文
151 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lactoferrin 2012-02-06
  • 打赏
  • 举报
回复
你看一下别人的是不是和你一样
EstherT 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 lactoferrin 的回复:]
我觉得是你把依赖项给删了
[/Quote]
我VS2010已经恢复过N次设置了= =!!!
Lactoferrin 2012-02-06
  • 打赏
  • 举报
回复
我觉得是你把依赖项给删了
EstherT 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 lactoferrin 的回复:]
不是,因为__imp__GetStockObject@4就在gdi32.lib里面
[/Quote]
可是以前写win的时候不用是为什么呢?哪本书有这方面呢?我看的那本找了貌似没有。。
Lactoferrin 2012-02-06
  • 打赏
  • 举报
回复
不是,因为__imp__GetStockObject@4就在gdi32.lib里面
EstherT 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lactoferrin 的回复:]
这个要#pragma comment(lib,"gdi32.lib")
[/Quote]

天啊,为什么这么复杂呃。是不是因为在D3D这个namespace里面不能用它呢?
Lactoferrin 2012-02-06
  • 打赏
  • 举报
回复
这个要#pragma comment(lib,"gdi32.lib")
EstherT 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lactoferrin 的回复:]
InitD3D不在lib中,这个是自己实现的
你去找d3dUtility.h的例子,看别人怎么实现的
[/Quote]
啊,是的。我就觉得这个程序有点奇怪呢。
这个又是为什么?error LNK2019: 无法解析的外部符号 __imp__GetStockObject@4

为什么不能解析这个函数呢?删掉这个运行又过了?
秦剑 2012-02-06
  • 打赏
  • 举报
回复
lib路径没有对吧
Lactoferrin 2012-02-06
  • 打赏
  • 举报
回复
那里只是声明,没有实现,你要自己实现
比如这里就是一个实现
http://blog.csdn.net/hashmat/article/details/5900885
你的书应该附带有代码
EstherT 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lactoferrin 的回复:]
InitD3D不在lib中,这个是自己实现的
你去找d3dUtility.h的例子,看别人怎么实现的
[/Quote]
嗯是的,就是和2L那位发的网址一样的。但是我看不太懂。Dumpbin 是什么?还有最后他说是又重新又编译了一次?
Lactoferrin 2012-02-06
  • 打赏
  • 举报
回复
InitD3D不在lib中,这个是自己实现的
你去找d3dUtility.h的例子,看别人怎么实现的
EstherT 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lactoferrin 的回复:]
#include<d3dUtility.h>
[/Quote]
呃,是的。我是自己按照红龙的书写了个"d3dUtility.h"也包含了。不知道您说的这个是什么意思?
hdg3707 2012-02-06
  • 打赏
  • 举报
回复
这种情况,这种情况其实就是一个库文件没有引入,导致了编译器无法解析。
在编译器中只要引入d3d9.lib这个库文件就可以了。
例如:VS2008这种情况。
选择菜单中:项目——**属性
然后弹出属性页对话框
在左侧的树形控件中选择:
配置属性——连接器——输入
然后在:附加依赖项
中加入或者写入:d3d9.lib
点击确定,重新编译即可。
hdg3707 2012-02-06
  • 打赏
  • 举报
回复
选择VC的菜单项“Project/Settings...”,然后选中“Link”标签,在“Object/library modules”栏输入“d3d9.lib d3dx9.lib”
RLib 2012-02-06
  • 打赏
  • 举报
回复
http://www.cppblog.com/jxtgddlt/archive/2011/10/25/159044.html
hdg3707 2012-02-06
  • 打赏
  • 举报
回复
http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/e2a0d1a6-7633-48ef-9ef0-0bf7b250efb6/
Lactoferrin 2012-02-06
  • 打赏
  • 举报
回复
#include<d3dUtility.h>

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧