我正在尝试编译一些代码,以便在不属于我的应用程序的窗口上呈现内容。我想使用DirectX 9来实现这一点,但由于某些原因,链接器错误现在正在扼杀我。
我将所有的lib都包含在.h文件中(参见下面的main.h)。
现在我将这个.h文件包含在我拥有的每个其他.h文件中,以便在任何地方使用它。有时我只包含一个包含我的主文件的.h文件。
现在的问题是,当我去任何类我想使用DirectX(包含.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后尝试构建它时,会出现未解决的符号错误。
我非常感谢我能得到的任何帮助,已经浪费了很多时间。
编辑:错误
答案 0 :(得分:1)
您指向命令行上的64位DirectX库。您需要使用32位库。