Increase thread and UPX compression == Invalid win32 application?

When I just announce

boost::thread t1, t2; 

in my program, and then compress the .exe file with UPX, the compression succeeds. But when I try to run the compressed exe, Windows tells me that it is an "invalid win32 application".

There is an error report for UPX (a similar error ), but it has another error message ("Application failed to initialize properly (0xc0000005)").

In my case, the OS thinks the file is corrupted or something like that, so it can't even start showing errors! Why??

Win7x64, C ++, VisualStudio, boost 1.47, UPX3.07

strange news:

  • Unpacking an exe will damage the exe, which causes an error just like here . ("The application failed to initialize correctly (0xc0000005)")) And this is for the unpacked exe, not packaged, as in the error report.

  • extern "C" void tss_cleanup_implemented(void) {} before including the header of the forced stream does not matter. The result is the same.

main.cpp:

 #include <boost/thread.hpp> int main(int argc, char** argv) { boost::thread t; return 0; } 

Can someone try to compile and compress?

+7
source share
1 answer

The bug was fixed in the new version 3.08. Now everything is all right.

+1
source

All Articles