我在VC ++ 2010中创建控制台应用程序,并向其添加以下代码:
#include <d3d10.h> #include <d3dx10.h> #include <DxErr.h> #pragma comment(lib, "d3d10.lib") #pragma comment(lib, "d3dx10.lib") #pragma comment(lib, "dxgi.lib") #pragma comment(lib, "dxerr.lib") int _tmain(int argc, _TCHAR* argv[]) { IDXGIFactory* pDXGIFactory; CreateDXGIFactory(IID_IDXGIFactory, ( void** )&pDXGIFactory); return 0; }
构建此项目时,我有链接器错误:错误LNK2001:未解析的外部符号_IID_IDXGIFactory
现在我创建支持MFC的控制台应用程序,并添加相同的代码。构建成功。第一种情况有什么问题?为什么MFC项目成功构建,非MFC项目失败?
答案 0 :(得分:9)
您需要引用另一个包含此标识符的库:
#pragma comment(lib, "windowscodecs.lib")
MSDN says its DXGI.lib
但实际上至少Windows SDK 7.0将它放在不同的库中。
答案 1 :(得分:2)
我有同样的问题,在我的案例中引用 #pragma comment(lib,“dxgi.lib”)解决了这个问题。