2015-07-19 3 views
0

При обновлении проекта C++ в VS2015 RC с помощью Windows 7 я попал следующее диалоговое окно ошибки во время отладки:MSVC2015: __vcrt_UnhandledException не может быть расположен

project_name.exe - Точка входа не найдена

точка входа процедуры __vcrt_UnhandledException не может быть расположена в динамической библиотеке ссылок VCRUNTIME140.ddl.

В окне вывода (наряду с типичным перечнем недостающих PDB-файлы) я получаю:

Исключение брошено в 0x775E1FB6 (ntdll.dll) в project_name.exe: 0xC0000139: Точка входа не найдена ,

Программа '[9400] project_name.exe' вышла с кодом -1073741511 (0xc0000139) «Точка входа не найдена».

Мой проект зависит от SDL, SDL_image, OpenGL и ODE.

Я пробовал кучу разных вещей, включая изменение SubSystem от CONSOLE до WINDOWS, перекомпилирование SDL2 с различными различными опциями, замену SDL2main.lib на явную функцию WinMain и изменение параметров компилятора, таких как отключение исключений.

Я не могу найти никакого упоминания о символе __vcrt_UnhandledException онлайн. Что необходимо для выполнения кода с помощью VCRUNTIME140.dll?

ответ

0

Решение этой ошибки довольно очевиден в ретроспективе, но обратная связь от времени выполнения была настолько бесполезной, что в конечном итоге я пытался попробовать много разных вещей, прежде чем найти ответ.

Скорее всего, UnhandledException - это просто первый символ из ЭЛТ, который потребуется при запуске программы. Это индикатор того, что другая версия DLL Visual C Run-Time (от предварительного просмотра VS2015) ожидается от чего-то в проекте (отсюда __vcrt_ в __vcrt_UnhandledException).

В этом случае это ODE, которое необходимо перестроить против VS2015 RC. В более общем плане, обязательно переконфигурируйте все при обновлении до более новой версии MSVC2015.

+1

Хм, это не может быть, VCRUNTIME140.dll - это VS2015 конкретная DLL. Разумеется, вы просто платите цену за бета-тестирование продукта, который быстро меняется с каждым промежуточным бета-версией. –

+0

Это имеет смысл. Я не мог вспомнить, была ли загружена или построена оскорбительная сборка ODE с предварительным просмотром VS2015. Я обновлю ответ. Благодарю. –

+1

Да; этот символ существовал в ранних сборках предварительного просмотра библиотек времени исполнения Visual C++ 2015. Он был удален в CTP6 или RC (я забыл, что). В общем, мы можем внести изменения в библиотеки вплоть до сборки релиза (RC); после этого мы не делаем никаких изменений. –

Смежные вопросы