Портирую приложение с D3D7 на D3D10. Несмотря на то, что интерфейс C для D3D10 существует, он не отображается при компиляции/связывании. Версия D3D7 использует интерфейс C и я не вижу ничего другого.
Вот мои команды сборки для файла D3D10:
"arguments": ["D:\\Programme\\Visual Studio 2022\\VC\\Tools\\MSVC\\14.40.33807\\bin\\HostX64\\x86\\cl.exe", "/c", "/nologo", "/Zi", "/FS", "/Fdbuild\\windows\\x86\\debug\\compile.trng2.pdb", "/W3", "/Od", "/std:c11", "/MTd", "/Isrc", "/DXAUDIO2_HELPER_FUNCTIONS", "/DWIN32_LEAN_AND_MEAN", "/DNOMINMAX", "/D_CRT_SECURE_NO_WARNINGS", "/DCINTERFACE", "/DDO_LOG", "/D_DEBUG", "/D_USE_MATH_DEFINES", "/IE:\\REDACTED\\build\\.packages\\z\\zlib\\v1.3.1\\55fd28c48bc34b35b89c569e2dd7bcce\\include", "/IE:\\REDACTED\\build\\.packages\\x\\xaudio2redist\\1.2.11\\163bc5c6e48e49d98ea66f724aede6bf\\include", "/Fobuild\\.objs\\REDACTED\\windows\\x86\\debug\\REDACTED\\specific\\d3d10\\d3d10info.c.obj", "REDACTED\\specific\\d3d10\\d3d10info.c"],
Как видите, я указываю C11 так же, как и CINTERFACE
, но получаю ошибки компоновщика и предупреждение компилятора.
d3d10info.c(18): предупреждение C4013: «IDXGIFactory_EnumAdapters» не определено; предполагая, что внешний возвращает int
d3d10info.c.obj: ошибка LNK2019: неразрешенный внешний символ _IDXGIFactory_EnumAdapters, на который ссылается функция _EnumAdapters
Вам также необходимо определить COBJMACROS
, чтобы использовать удобные макросы, такие как IDXGIFactory_EnumAdapters(factory,int,void**)
.
Это не требуется для d3d.h
(D3D < 9), но, похоже, необходимо для d3d10.h