Неразрешенный внешний символ __vsnprintf & hellip; (в dxerr.lib)?

Вы можете использовать следующий сценарий в поле зрения:

<script type="text/javascript">
    var BASE_URL = '<%= ResolveUrl("~/") %>';
</script>
21
задан Moody 25 June 2015 в 14:47
поделиться

2 ответа

Вместо того, чтобы взламывать dxerr.lib вручную, вы можете добавить

#include <Windows.h>
#include <stdio.h>
int (WINAPIV * __vsnprintf)(char *, size_t, const char*, va_list) = _vsnprintf;

где-нибудь в вашем коде

20
ответ дан user5477957 25 June 2015 в 14:47
поделиться

Используемые вами библиотеки DirectX скомпилированы с более старой версией Visual Studio, чем вы используете. Microsoft иногда вносит изменения в их среду выполнения C, создавая несовместимости между библиотеками, скомпилированными с разными версиями. __vsnprintf был внутренним символом в более старых версиях их среды выполнения C, он не существует в версии RC 2015 года.

К сожалению, dxerr.lib (наряду с d3dx11.lib) были устарели . У вас есть два варианта - вы можете переключиться обратно на VS2013 или прекратить использование функциональности из dxerr.lib. Последнее, вероятно, лучше, потому что вы можете дублировать его функциональные возможности, используя FormatMessage сейчас (больше информации в связанной статье).

4
ответ дан MuertoExcobito 25 June 2015 в 14:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: