Ответ 1
Поместите это в начало вашего заголовочного файла класса или в stdafx.h
FILE _iob[] = { *stdin, *stdout, *stderr };
extern "C" FILE * __cdecl __iob_func(void) { return _iob; }
Я получаю ниже ошибки при переносе моего проекта с VS2008 на VS2015.
21>TFCLd.lib(cryptlib.obj) : warning LNK4217: locally defined symbol _fprintf imported in function _OpenSSLDie
21>TFCLd.lib(rsa_sign.obj) : warning LNK4049: locally defined symbol _fprintf imported
21>TFCLd.lib(cryptlib.obj) : error LNK2019: unresolved external symbol __imp____iob_func referenced in function _OpenSSLDie
21>TFCLd.lib(rsa_sign.obj) : error LNK2001: unresolved external symbol __imp____iob_func
Проект строится на VS2008, но с превышенной ошибкой в VS2015. Могу ли я узнать, чего мне не хватает.
Поместите это в начало вашего заголовочного файла класса или в stdafx.h
FILE _iob[] = { *stdin, *stdout, *stderr };
extern "C" FILE * __cdecl __iob_func(void) { return _iob; }
Посмотрите:
http://openssl.6102.n7.nabble.com/Compiling-OpenSSl-Project-with-Visual-Studio-2015-td59416.html
Изменение строки 310 файла e_os.h в корневом каталоге openssl с сайта
# if _MSC_VER> =1300
к # if _MSC_VER> =1300 && _MSC_VER <= 1800
устраняет проблему.
Оригинальный плакат описывает причину проблемы:
В Visual Studio 2015 библиотеки с старыми именами были переработаны
Visual Studio 2015 называется _MSC_VER == 1900.
Убедитесь, что ваш libcurl.lib был скомпилирован с той же IDE (MSVC 2015), что и ваше приложение.
Ваша версия openSSL устарела для VS2015. Загрузите и установите последнюю стабильную версию из https://www.openssl.org/source/
Изменить: как установить его: https://www.youtube.com/watch?v=icNn-eJif9k