Boost线程和UPX压缩==无效的win32应用程序

Boost thread and UPX compression == not valid win32 application?

本文关键字:无效 win32 应用程序 压缩 线程 UPX Boost      更新时间:2023-10-16

当我刚刚声明

boost::thread t1, t2;
在我的程序中

,然后用UPX压缩。exe文件,压缩成功。但是当我试图启动压缩后的exe时,Windows告诉我这是"无效的win32应用程序"。

有一个UPX的错误报告(类似的错误),但它有不同的错误消息("The application failed to initialize proper (0xc0000005)")。

在我的情况下,操作系统认为文件损坏或什么,所以它甚至不能开始显示错误!为什么? ?

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

奇怪的消息:

  1. 解压缩exe会导致损坏的exe抛出完全相同的错误在这里。("应用程序初始化失败(0xc0000005)")这是针对未打包的exe,而不是像错误中那样打包报告。

  2. extern "C" void tss_cleanup_implemented(void) {}在包含boost的线程头之前,这无关紧要。的

main.cpp:

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

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

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