Нарушение прав доступа в Log4cplus при использовании глобального Logger
Так что все довольно просто.
Посмотри на это:
#include <log4cplus/logger.h>
#include <iostream>
log4cPlus::Logger name;
int main(int argc, char* argv[]) {
int p;
cin >> p;
return 0;
}
Вы можете запустить его двумя способами:
- Запустите его, введите номер и нажмите ввод.
- Запустите его, но нажмите красный крестик в углу cmd, чтобы закрыть окно команд.
Теперь, если вы выполнили это, используя версию библиотеки (log4cplus.lib) в конфигурации выпуска, результаты были такими же, ничего не произошло, что не должно было произойти.
Однако, если вы запустили это, используя отладочную версию библиотеки (log4cplusD.lib) в конфигурации отладки, результаты были другими. При первом запуске все работало нормально. На втором, однако, была выдана ошибка:
0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF
Чтобы восстановить его, VS2017 требуется около 30 секунд, так что это довольно раздражает.
Почему это происходит?