7

当我刚刚宣布

boost::thread t1, t2;

在我的程序中,然后用UPX压缩.exe文件,压缩成功。但是当我尝试启动压缩的 exe 时,Windows 告诉我它是“无效的 win32 应用程序”。

UPX 有一个错误报告(类似错误),但它有不同的错误消息(“应用程序未能正确初始化(0xc0000005)”)。

在我的情况下,操作系统认为文件已损坏或其他原因,因此它甚至无法开始显示错误!为什么??

Win7x64、C++、VisualStudio、升压 1.47、UPX3.07

奇怪的消息:

  1. 解压 exe 会使损坏的 exe 引发与此处完全相同的错误。(“应用程序未能正确初始化(0xc0000005)”)这是针对解压后的 exe,而不是像错误报告中那样打包。

  2. extern "C" void tss_cleanup_implemented(void) {} 在包含 boost 的线程头之前并不重要。结果是一样的。

主.cpp:

#include <boost/thread.hpp>

int main(int argc, char** argv)
{
    boost::thread t;
    return 0;
}

可能有人会尝试编译和压缩?

4

1 回答 1

1

新版本 3.08 中修复了错误。现在好了。

于 2011-12-15T17:09:00.943 回答