Visual Studio 2015 — неразрешенная ошибка внешнего символа, библиотека C ++ VS15 d3dx9

по какой-то причине я получил «неразрешенный внешний символ«ошибка, и я просто не могу понять, почему ..

Жалуется на__snprintf«,»__sprintf» а также «__vsnprintf«хотя я даже не использую те ..

Изображение компилятора:

введите описание изображения здесь

Как вы можете видеть, я использую d3dx9.lib
и это мои включает & библиотеки:

#include <Windows.h>
#include <iostream>
#include <stdio.h>

#include "d3d9.h"#include "d3dx9.h"#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")

Единственный код, в котором я использую printf:

void v_DrawText(int X, int Y, D3DCOLOR Color, ID3DXFont *font, const char* sText, ...)
{
char sText_[1024] = "";
va_list ap;

if (!sText || *sText == '\0')
return;

va_start(ap, sText);
_snprintf_s(sText_, 1024, 1023, sText, ap);
va_end(ap);

RECT Position = { X, Y, X + 500, Y + 50 };
font->DrawText(NULL, sText_, -1, &Position, DT_LEFT | DT_WORDBREAK, Color);
}

Я уже пытался пересобрать решение с нуля, заново загрузить библиотеку, добавить ее непосредственно в компоновщик … но нет. Просто не будет работать ..

Конфигурация проекта (согласно запросу):

введите описание изображения здесь

0

Решение

Имейте в виду, что D3DX9 (а также D3DX10, D3DX11) и DirectX SDK все устарели. Увидеть MSDN. VS 2010 была последней версией, официально поддерживаемой D3DX9 с DirectX SDK (июнь 2010 г.). В общем случае библиотеки импорта должны работать, но статические библиотеки, скорее всего, не будут работать.

Обратите внимание, что DXERR.LIB не работает с VS 2015, потому что CRT изменился. Увидеть эта тема для деталей.

Вы по-прежнему используете DirectX SDK 9.0b от лета 2004 года, который в то время поддерживал VS .NET 2002 и VS .NET 2003. Если вам все еще нужно использовать устаревшую версию D3DX9, перейдите к выпуску DirectX SDK (июнь 2010). Увидеть эта почта.

Кроме того, у вас неправильно настроены пути include / lib для смешивания старого DirectX SDK с Windows 8.x SDK, который поставляется с VS 2012 или более поздней версии. Смотрите инструкции на MSDN для правильного порядка пути, который является задний ход из того, что у вас есть в настоящее время.

0

Другие решения

Других решений пока нет …