2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Проблема с переходом на VS 2017
Сообщение03.04.2017, 12:34 
Аватара пользователя


05/06/08
470
Старый код не компелируется. Была версия VS 8. Выдаётся огромное число ошибок. При этом нет интерактивного перехода на строку а только отсылка к интернет статье про ошибку.
Посоветуйте, что делать?

 Профиль  
                  
 
 Re: Проблема с переходом на VS 2017
Сообщение03.04.2017, 13:03 
Заслуженный участник


28/04/09
1933
MGM в сообщении #1206146 писал(а):
Посоветуйте, что делать?
Как минимум, привести код ошибки и текст информационного сообщения. Также было бы неплохо привести текст программы с ошибкой (небольшую его часть или MWE — Minimal Working Example).

Если имеется в виду Visual C++, то предварительно можно сказать, что начиная приблизительно с Visual Studio 2010, в Microsoft взяли курс на сближение со стандартом языка C++ и к настоящему моменту достигли на этом поприще большого успеха (сейчас Visual C++ [точнее, последняя его версия, которая поставляется с Visual Studio 2017] занимает где-то 3 место среди всех компиляторов C++ [после clang++ и g++] по полноте и качеству поддержки нынешнего стандарта языка [C++14]). Поэтому не удивительно, что старый код может не компилироваться (он, вероятно, использовал нестандартные расширения компилятора, полагался на ошибки в реализации стандарта или [что менее вероятно] использовал те возможности языка, которые были изменены в новых стандартах [Visual C++ из состава Visual Studio 2017 опирается на C++14 и, отчасти, на C++1z — будущий C++17]).

 Профиль  
                  
 
 Re: Проблема с переходом на VS 2017
Сообщение03.04.2017, 13:20 
Аватара пользователя


05/06/08
470
Спасибо. Переставил версию c V8 на 10.... в настройках. Вроде бы что-то улучшилось. Хотя почему-то пишет your project out of dates. Ну и вылезли какие-то ошибки, видимо связанные с изменениями в библиотеках. Типа '__iob_func': identifier not found.
Попробую решить сам эту проблему.

-- Пн апр 03, 2017 14:45:04 --

Лет семь назад по совету сетевых гуру начал вставлять строку
extern "C" { FILE _iob[3] = {__iob_func()[0], __iob_func()[1], __iob_func()[2]}; }
И всё работало.
Теперь выдаёт это:

'__iob_func': identifier not found.
Гугль выводит опять на на ошибки линковки, где советуют различные обходы с __iob_func()
Про то, что компилятор может не видеть такой функции интернет молчит. Или зарыл ответы очень глубоко.
Может кто-нибудь знает, где теперь эта функция есть?

-- Пн апр 03, 2017 14:57:26 --

Теперь эта вставка должна выглядеть так
extern "C" { FILE _iob[3] = {__acrt_iob_func(0), __acrt_iob_func(0), __acrt_iob_func(0)}; }

-- Пн апр 03, 2017 14:58:36 --

Всё работает.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group