по какой-то причине я получил ошибку «неразрешенный внешний символ», и я просто не могу понять, почему..
Он жалуется на "__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);
}
Я уже пытался перестроить решение с нуля, повторно загрузить библиотеку, добавить ее напрямую в компоновщик... но нет. Просто не получится..
Конфигурация проекта (по запросу):
%28
. Попробуйте изменить это наProgram Files (x86)
. Если у вас возникают те же проблемы при запуске нового проекта, вам необходимо исправить установку SDK. - person MicroVirus   schedule 02.11.2015dumpbin
, чтобы убедиться, что библиотека ссылок для среды выполнения C содержит символы. - person legalize   schedule 03.11.2015legacy_stdio_definitions.lib
в качестве дополнительной зависимости в настройках ввода компоновщика. - person cremno   schedule 03.11.2015