2011-11-24 33 views
7

Khi tôi chỉ cần khai báoTăng luồng và nén UPX == không phải ứng dụng win32 hợp lệ?

boost::thread t1, t2; 

trong chương trình của tôi và sau đó nén .exe file với UPX, nén thành công. Nhưng khi tôi cố gắng để khởi động exe nén, Windows nói với tôi rằng đó là "không hợp lệ ứng dụng win32".

Có báo cáo lỗi cho UPX (similar bug), nhưng có thông báo lỗi khác nhau ("Ứng dụng không thể khởi chạy đúng (0xc0000005)").

Trong trường hợp hệ điều hành của tôi cho rằng tệp bị hỏng hoặc một cái gì đó, vì vậy thậm chí không thể bắt đầu hiển thị lỗi! Tại sao??

Win7x64, C++, VisualStudio, tăng 1.47, UPX3.07

tin tức lạ:

  1. giải nén exe làm exe hỏng mà ném lỗi giống hệt nhau như here. ("Ứng dụng không thể khởi tạo đúng cách (0xc0000005)") Và đây là dành cho exe chưa được đóng gói, không được đóng gói như trong báo cáo lỗi .

  2. extern "C" void tss_cleanup_implemented(void) {} trước khi đưa tiêu đề của chuỗi tăng lên không thành vấn đề. Kết quả cũng giống nhau.

main.cpp:

#include <boost/thread.hpp> 

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

Có thể ai đó sẽ cố gắng biên dịch và nén?

+1

Vâng, xây dựng của bạn có được thiết lập để tăng tốc sao cho kết quả trong phiên bản thực thi 32 bit hay là tệp thực thi 64 bit? (UPX trên các cửa sổ không hỗ trợ các tệp nhị phân 64 bit) http://sourceforge.net/tracker/?func=detail&aid=2859708&group_id=2331&atid=352331 – HostileFork

+0

thực thi là 32bit – Sergey

+0

đã thử một trình đóng gói khác, nó chỉ ghi "các cuộc gọi lại tls không được hỗ trợ " – Sergey

Trả lời

1

Lỗi đã được sửa trong phiên bản mới 3.08. Bây giờ là ok.

Các vấn đề liên quan