Различные результаты в debug+release версии visual studio C++ 2010, хотя те же параметры проекта для release+debug
Я разработал сложный алгоритм много лет назад. Теперь, спустя годы, мне даже трудно понять его структуру. Но я хочу использовать его сейчас как часть нового проекта. Пытаясь интегрировать этот код в новый проект, я столкнулся с причудливым явлением.
Если я компилирую код с помощью VC++6, алгоритм работает правильно, в отладочной и релизной версии. Если я использую выражение "неправильный" в следующем здесь и сейчас, это не означает, что алгоритм дает совершенно неправильные результаты, но результаты, которые намного хуже по качеству, как я бы назвал его "правильным".
Если я компилирую тот же код с помощью Visual Studio C++ 2010, алгоритм работает неправильно (= результаты низкого качества) в версии Releaase. Тот же эффект (плохие результаты), если я запускаю exe-файл, который был создан с помощью Debug-Compile и Link. Но если я запускаю программу в IDE VS2010, начиная с "Debug->Start without debugging = F5", она дает правильные результаты (= хорошее качество, те же результаты, что и с Debug+Release в VC++6). Как такое возможно ? Конечно, IDE запускает Debug-exe-файл по-другому, как если бы он был запущен вручную из командной строки. Какова настройка, чтобы получить эти результаты также и в релизной версии ?
Теперь я изменил все настройки проекта, чтобы они были похожи: Release = Debug. Тем более я отключил все оптимизации. Но все равно есть эффект, что я получаю правильные результаты только в том случае, если запускаю программу с помощью Debug->Start в IDE.
Поэтому я не могу понять этот эффект, я схожу с ума из-за этого, потому что я пробовал все, чтобы соответствовать этому в течение последних трех ночей, но безуспешно. Я также попробовал его с Visual Studio 2017, с тем же результатом, что и в VC++ 2010.
Я также попытался связать lib-файл со старым кодом, который был скомпилирован и связан VC++6, в новом проекте в VC++ 2010. Но в действительности это также приводит к неверным результатам (результатам плохого качества).
Мне нужна версия выпуска, которая может быть запущена в Windows 10 с правильными (хорошими) результатами. Я не могу получить это с VC++6, так что мне нужно решение для этого причудливого эффекта, пожалуйста.
Что я уже пробовал:
I have also tried to link a lib-file with the old code, that was compiled and linked by VC++6, in the new project in VC++ 2010. But in effect also this produces incorrect results (bad quality results).
phil.o
Трудно сказать :)
Возможно, попробуйте деактивировать возможные функции оптимизации в сборке выпуска и посмотреть, не изменится ли что-нибудь?