libpqxx выдает исключение в режиме отладки

у меня есть MFC проект, который использует libpqxx. Все настройки по умолчанию.

Режим релиза работает должным образом, как я ожидал. Но когда я переключаюсь в режим отладки, он показывает исключение и говорит отладочное утверждение:

Самое интересное, что если я использую Shared DLL вместо Static (конечно же, в Debug), это работает!

По сути, в Debug with Static Library это исключение / ошибка. Если я переключаюсь на Shared DLL, он снова работает. Конечно, я могу использовать расшаренный как отладочный и статический как релиз, но Это правильно?

Примечание: этот проект является базовым и новым. Я не изменил ни одного конфига из Configuratrion Manager.

Любое предложение?

1

Решение

Хорошо, я не уверен, если libpqxx использует MFC или нет (а какой?). Я подозреваю, что вы выделяете некоторую память из одной кучи, а также выделяете ее из другой кучи. Смешивание версий MFC, а также статическая / нестатическая смесь MFC приведут к такому утверждению.

Не относитесь к этому как за работой на релиз сборки! Он просто не защищает себя (то есть теперь показывает любое сообщение об утверждении). Лучше всего найти причину этой проблемы, и сначала нужно найти стек вызовов (нажмите «Повторить» в этом диалоговом окне подтверждения).

Видишь ли, если libpqxx зависит от MFC или не поддерживает смешивание статической версии MFC. Вы можете увидеть документацию libpqxxи / или используйте Dependency Walker, чтобы узнать, использует ли библиотека MFC.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]