У меня есть решение Visual Studio 2008, которое состоит из нескольких проектов и использует DLL с их заголовками. В отладочной версии это (решение) работает очень хорошо. И в версии выпуска это компилируется успешно, но при выполнении некоторых функций, которые определены в файле dll, это терпит неудачу.
Как я уже сказал, решение отлично работает в режиме отладки, и параметры установлены правильно. Попробовал выключить
оптимизация, включил отладочную информацию, это не помогло. В чем может быть причина проблемы?
Я видел это случалось много раз прежде. В почти каждый случай проблема была обнаружена как ошибка за пределами границ при записи в массив или другую структуру данных. В других случаях использовалась неинициализированная переменная.
У вас есть ошибка в вашем коде. Это точно. Когда вы строите в настройках Debug, компилятор делает много вещей для вас, которые маскируют определенные типы проблем. Компилятор напишет код, который инициализирует нулями некоторые вещи, маскируя проблемы неинициализированных переменных.
Первое, что я хотел бы попробовать, это поднять уровни предупреждений до их максимальных настроек. Вы должны делать это все время в любом случае. Это очень часто выявляет проблему. Просто обязательно фиксировать проблемы, о которых говорит вам компилятор. Не маскируйте их #pragma
S или Chintzy бросает. Следующий шаг через ваш код, чтобы изолировать проблему. Это может быть сложно и отнимает много времени, но есть серебряная подкладка. Какова бы ни была проблема, вероятность того, что вы повторите эту ошибку, обратно пропорциональна тому, как долго и насколько сложно выявить и исправить ошибку. 🙂
Других решений пока нет …