求助:DirectX 8.0 源码报错

proof1 2020-12-18 11:01:22
学一本书《Direct3D中的2D编程》,书中没有实验操作步骤。
第一章第一节的源码,就没通过。

实验配置:
Windows7、DX8_SDK
Cfree5.0,设置了Include和Library目录。源码未通过。
VC++6.0,设置了Include和Library目录。源码未通过。

网上看到DX9相关参考:
“第二步:添加链接所需的库文件,如dxguid.lib、d3d9.lib、d3dx9.lib等,……”

是否因缺少这一步骤?针对DX8和本源码,该如何设置?

DX8 + 源码 下载
https://pan.baidu.com/s/1vhc1VIn1Tz9FXY7hl0rD8w 提取码: kr89



CFree5.0报错信息:
--------------------配置: mingw5 - GUI Debug, 编译器类型: MinGW--------------------

检查文件依赖性...
正在连接...
[Error] E:\Direct2D\chap01\Example01_1\main.cpp:127: undefined reference to `Direct3DCreate8@4'
[Error] collect2: ld returned 1 exit status

构建中止 main: 2 个错误, 0 个警告

...全文
115 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2020-12-18
  • 打赏
  • 举报
回复
尽量完全按照书上的要求在VMWare中创建虚拟机,满足书上所用开发环境的所有要求,比如 操作系统:WinXP 编译环境:VC 6.0 ……
赵4老师 2020-12-18
  • 打赏
  • 举报
回复
引用 2 楼 proof1 的回复:
编译通过。 连接时报错: undefined reference to `Direct3DCreate8@4' 错误位置: //create the IDirect3D8 object g_pd3d = Direct3DCreate8 ( D3D_SDK_VERSION ) ;
试试将源代码文件扩展名由.cpp改为.c
proof1 2020-12-18
  • 打赏
  • 举报
回复
编译通过。
连接时报错:
undefined reference to `Direct3DCreate8@4'

错误位置:
//create the IDirect3D8 object
g_pd3d = Direct3DCreate8 ( D3D_SDK_VERSION ) ;
Directx8.0 SDK : 坦克战 v2.0 基本操作: A/菜单操作: 菜单选择:W、S 或 上、下方向键 菜单确定:回车 B/游戏操作: 方向控制:W、A、S、D或方向键 发射子弹:空格 暂停游戏:回车 退出到菜单:ESC 版本升级说明: 1.可以暂停游戏了。 2.使用DirectxSound提升了声音品质,解决了老版本不能混音的缺点。 3.添加了敌方的AI,敌人撞墙后会搜寻追踪玩家。 4.物品增加到6个,玩家和敌人都可以吃到随机出现的物品。 5.关卡增加到了十关。 6.增加了地图编辑器,可以自己编辑地图和运行。 7.重写了爆炸的即时粒子系统,模拟爆炸时弹片的飞旋效果。 游戏物品说明: 1.钢盔:可以暂时不损血(除却被炸弹炸到)。 2.坦克:可以增加1点血。 3.时钟:暂时冻结坦克的移动。 4.星型:增加子弹和坦克移动速度(累计的)。 5.炸弹:随机轰炸地图的任意地点,被炸到的话,对方损失1点血。 6.船: 可以过河。 补充: 每关开始将重设坦克属性,但玩家坦克的血将不补充。 代码说明: 1.重新编写了代码。 2.编程语言:使用VC++6.0 + Directx8.0 SDK。 3.用DirectxDraw实现基本绘图,用DirectxInput 实现游戏基本操作 4.首次学习并使用DirectxSound组件实现了混音效果。 5.尝试封装了Directx的这三个重要组件。 5.本人为非专业编程人员,代码难免有的地方比较乱和不规范,望大家多多谅解! 问题: 1.游戏在不同的机器上运行会有不同的速度。如何让游戏在不同的机器上都有相对稳定的运行速度呢? 2.坦克爆炸时,一些坦克会暂时不显示,不能解决. 3.我方和对方坦克的碰撞检测是个难题,主要是测到碰撞后坦克倒退时有时会退出边界或穿墙而引起错误。所以去除了。

65,199

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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