Неразрешенный внешний символ _IID_IDXGIFactory - PullRequest
4 голосов
/ 28 марта 2012

Я создаю консольное приложение в 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 терпит неудачу?

Ответы [ 2 ]

9 голосов
/ 28 марта 2012

Вам нужно сослаться на другую библиотеку, которая содержит этот идентификатор:

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

MSDN сообщает, что DXGI.lib, но по крайней мере в Windows SDK 7.0 он есть в другой библиотеке.

3 голосов
/ 25 апреля 2015

У меня была такая же проблема и в моем случае ссылка # комментарий прагмы (lib, "dxgi.lib") решил проблему.

...