Когда я просто заявляю
boost::thread t1, t2;
в моей программе, а затем сжать файл .exe с помощью UPX, сжатие выполнено успешно. Но когда я пытаюсь запустить сжатый exe-файл, Windows сообщает мне, что это «недопустимое приложение win32».
Существует отчет об ошибке для UPX ( аналогичная ошибка ), но в нем есть другое сообщение об ошибке ( "Не удалось правильно инициализировать приложение (0xc0000005)" ).
В моем случае ОС считает, что файл поврежден или что-то в этом роде, поэтому его даже нельзя запустить, чтобы показать ошибки! Почему ??
Win7x64, C ++, VisualStudio, boost 1,47, UPX3,07
странные новости:
Распаковка exe делает испорченный exe, который выдает ошибку точно таким же
как здесь . ( "Приложение не удалось правильно инициализировать
(0xc0000005) ") И это для распакованного exe, а не упакованного, как в баге
отчет.
extern "C" void tss_cleanup_implemented(void) {}
перед включением буст заголовок темы не имеет значения.
результат тот же.
main.cpp:
#include <boost/thread.hpp>
int main(int argc, char** argv)
{
boost::thread t;
return 0;
}
Может быть кто-нибудь попробует скомпилировать и сжать?