首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DX11未解外

DX11未解外
EN

Stack Overflow用户
提问于 2013-05-20 05:12:38
回答 1查看 2.4K关注 0票数 2
代码语言:javascript
复制
1>------ Build started: Project: Setup, Configuration: Debug Win32 ------
1>BoxDemo.obj : error LNK2019: unresolved external symbol _D3DX11CreateEffectFromMemory@24 referenced in function "private: void __thiscall BoxApp::BuildFX(void)" (?BuildFX@BoxApp@@AAEXXZ)
1>C:\Users\Josh\Documents\Game Institute\DirectX\Chapter 1\Projects\Setup\Debug\Setup.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

我正在使用VS2012,并试图使用Frank DX11图书中的示例程序来设置DX11。我不知道这个错误信息意味着什么,任何帮助都将不胜感激。

代码语言:javascript
复制
1>------ Build started: Project: Setup, Configuration: Debug Win32 ------
1>Effects11d.lib(EffectAPI.obj) : error LNK2019: unresolved external symbol _D3DCompileFromFile@36 referenced in function _D3DX11CompileEffectFromFile
1>C:\Users\Josh\Documents\Game Institute\DirectX\Chapter 1\Projects\Setup\Debug\Setup.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
EN

回答 1

Stack Overflow用户

发布于 2013-05-20 10:19:34

链接器找不到D3DX11CreateEffectFromMemory函数的定义。这个函数是Effects11框架的一部分。您需要链接Effects11.lib来构建这个程序。

以前,要开发DirectX应用程序,您必须安装了DirectX SDK。现在,独立的DirectX SDK涉及到遗留问题,现在它是Windows的一部分(自版本8.0以来)。你在安装Visual 2012时得到了它。

现在的问题是,这个SDK版本不包括Effect11框架等。

有几种方法可以解决这个问题:

  1. 下载并安装遗留的DirectX SDK。编译时会收到一些警告,因为旧的Windows和新的Windows相互冲突。要解决这个问题,您可以切换到您的项目到v110xp工具集,或者安装Windows 7 SDK,并在项目的选项中切换到v100
  2. 在这个示例程序中,露娜先生在源代码归档的Common文件夹中包含了已编译的库。但我不确定它是否适用于Win8 SDK。
  3. 正确的源代码和删除Effect11的东西。如果你只是学习DirectX,那不是一条容易的路。

查克·沃尔波恩-MSFT的更多解释:

  • DirectX SDK在哪里?
  • Direct3D 11更新的效果
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16642989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档