LNK2019:未解决的符号

时间:2015-11-07 13:36:25

标签: c++ symbols

我正在尝试编译一些代码,以便在不属于我的应用程序的窗口上呈现内容。我想使用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后尝试构建它时,会出现未解决的符号错误。

我非常感谢我能得到的任何帮助,已经浪费了很多时间。

编辑:错误

Errormessage

1 个答案:

答案 0 :(得分:1)

您指向命令行上的64位DirectX库。您需要使用32位库。