连接一个DX8工程时出现错误error LNK2001: unresolved external symbol _Direct3DCreate8@4,是不是我的Dx8 SDK不全?库里有147个文件,

sususu7878 2005-02-23 06:39:53
ScreenCapture.obj : error LNK2001: unresolved external symbol _D3DXSaveSurfaceToFileA@20
ScreenCapture.obj : error LNK2001: unresolved external symbol _Direct3DCreate8@4
...全文
172 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
寻开心 2005-02-24
  • 打赏
  • 举报
回复
dxsdk每个版本之间在使用上都有差异,而且升级的速度比较快,基本上一年不到就是一个新版本出来了,谁也不知道微软会在新的dxsdk当中和上一个在使用方式上有多大的差异

这就要求你必须跟得上时代

而opengl就不同, 从最开始到现在版本号码也不过是在小数点后面变化了几个位置而已,从1.0仅仅升级到了1.4而且基本上都是可以兼容的,1.0的代码在1.4版本上照用。

初学者如果没有合适的指导人的话, 还是学习opengl方便
至少在调试时候轻易不会重新启动电脑,网络上相应的学习资源也很多,尤其是在各个校园的内部网络。
寻开心 2005-02-24
  • 打赏
  • 举报
回复
dx9 当然也是不行的
呵呵
这个就是directx和opengl相比不好的地方

在dxsdk的各个版本之间接口函数写法差距很大
你没有办法把不同版本的代码原封不动的编译成功(个别除外)

dx8.1以后支持 D3DXSaveSurfaceToFile 这个函数

但是并不意味着,dx9当中对接口的用法和dx8.1的能够兼容的

你只有两种解决方案
1 找到 dx8。1 的sdk 可以保证,你不用改代码直接编译成功
2 找dx9的sdk,找到相应的编译出问题的函数,按照dx9的sdk文档当中的描述进行修改

EnochShen 2005-02-23
  • 打赏
  • 举报
回复
这两个头文件只是保证你那两个函数可以用.如果你还要建模,设置变换矩阵,灯光什么的,最好再加上
#include "d3dx9math.h"

EnochShen 2005-02-23
  • 打赏
  • 举报
回复
如果是D9的话

#include "d3d9.h"
#include "d3dx9tex.h"

#pragma comment(lib,"d3d9.lib")
#pragma comment(lib,"d3dx9.lib")
sususu7878 2005-02-23
  • 打赏
  • 举报
回复
我用DX9 SDK 替换掉DX8 SDK,还是不行
sususu7878 2005-02-23
  • 打赏
  • 举报
回复
非常感谢你!
寻开心 2005-02-23
  • 打赏
  • 举报
回复
Direct3DCreate8这个接口的格式在8和8.1当中也是不同的

所以从提示的信息看,不是你的工程当中include和library设置不对
而是你使用错了dxsdk的版本
:)
寻开心 2005-02-23
  • 打赏
  • 举报
回复
你搞错了dx sdk的版本了

D3DXSaveSurfaceToFile是dx8。1才支持的,8 不支持
你需要找8。1的sdk去,8。0的不可以

16,548

社区成员

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

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

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