4

我在 VC++ 2010 中创建控制台应用程序,并向其中添加以下代码:

#include <d3d10.h>
#include <d3dx10.h>
#include <DxErr.h>

#pragma 注释(lib,“d3d10.lib”)
#pragma 注释(lib,“d3dx10.lib”)
#pragma 注释(lib,“dxgi.lib”)
#pragma 注释(lib,“dxerr.lib”)

int _tmain(int argc, _TCHAR* argv[])
{
    IDXGIFactory* pDXGIFactory;
    CreateDXGIFactory(IID_IDXGIFactory, ( void** )&pDXGIFactory);

    返回0;
}

构建这个项目,我有链接器错误:错误 LNK2001:未解析的外部符号 _IID_IDXGIFactory

现在我创建了支持 MFC 的控制台应用程序,并添加了相同的代码。构建成功。第一种情况有什么问题?为什么MFC项目建成功,非MFC项目建失败?

4

2 回答 2

9

您需要引用另一个包含此标识符的库:

#pragma comment(lib, "windowscodecs.lib")

MSDN 说它DXGI.lib但实际上至少 Windows SDK 7.0 将它放在不同的库中。

于 2012-03-28T16:02:49.023 回答
3

我遇到了同样的问题,在我的情况下,引用 #pragma comment(lib, "dxgi.lib")解决了这个问题。

于 2015-04-25T10:15:08.910 回答