我正在尝试编译一些代码以在不属于我的应用程序的窗口上呈现内容。我想使用 DirectX 9 来实现这一点,但出于某种原因,链接器错误现在让我很痛苦。
我将我所有的库都包含在一个 .h 文件中(参见下面的 main.h)。
现在我将这个 .h 文件包含在我拥有的所有其他 .h 文件中,以便在任何地方使用它。有时我只包含一个包含我的主文件的 .h 文件。
现在的问题是,当我去任何我想在其中使用 DirectX 的类(class)(包含 .h 文件)时,我收到 LNK2019 错误。
auto hResult = Direct3DCreate9Ex( D3D_SDK_VERSION, &this->m_pDirect3D9Ex );
Direct3DCreate9Ex 错误
对应的.h文件包含主.h文件的方式如下:
#ifdef _MSC_VER
#pragma once
#endif
#include "main.h"
main.h(完整):
#pragma once
#endif
#include <Windows.h>
#include <iostream>
#include <vector>
#include <memory>
#include <chrono>
#include <thread>
#include <d3d9.h>
#include <d3dx9.h>
#include <dwmapi.h>
#pragma comment( lib, "d3d9.lib" )
#pragma comment( lib, "d3dx9.lib" )
#pragma comment( lib, "dwmapi.lib" )
#endif
这甚至在使用 VisualStudio 编译时也有效,但我需要使用 cl.exe 来实现。当我将所有内容移出 VisualStudio 后尝试构建它时,出现未解析的符号错误。
我将不胜感激我能得到的任何帮助,已经在这上面浪费了几个小时。
编辑:错误
最佳答案
您在命令行上指向 64 位 DirectX 库。您需要使用 32 位库。
关于c++ - LNK2019 : Unresolved symbol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33583341/