7
當我剛剛宣佈Boost線程和UPX壓縮==無效的win32應用程序?
boost::thread t1, t2;
在我的程序後再用UPX .exe文件,壓縮成功。但是,當我嘗試啓動壓縮exe文件時,Windows告訴我它是「無效的win32應用程序」。
沒有爲UPX(similar bug)bug報告,但它有不同的錯誤信息(「應用程序未能正確初始化(0000005)」)。
在我的案例OS認爲文件損壞或什麼的,所以它不能甚至開始顯示錯誤!爲什麼??
Win7x64,C++,VisualStudio的,提高1.47,UPX3.07
怪新聞:
壓縮EXE使損壞的exe文件是完全一樣的 拋出錯誤爲here。 (「應用程序未能正確初始化 (0000005)」),這是解壓縮EXE,而不是裝在錯誤 報告。
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;
}
可能有人會嘗試編譯和壓縮?
那麼,是您的構建設置了提升,使得它導致32位可執行文件,或者是一個64位可執行文件? (在Windows UPX不支持64位二進制)http://sourceforge.net/tracker/?func=detail&aid=2859708&group_id=2331&atid=352331 – HostileFork
可執行文件是32位 – Sergey
嘗試另一種包裝,它只是寫道:「TLS回調不支持「 – Sergey