2011-11-24 4 views
7

는 압축이 성공합니다. 그러나 압축 된 exe를 시작하려고하면 Windows에서 "유효하지 않은 win32 응용 프로그램"이라고 알려줍니다.부스트 스레드 및 UPX 압축 == 유효하지 않은 win32 응용 프로그램? 난 그냥 내 프로그램에</p> <pre><code>boost::thread t1, t2; </code></pre> <p>를 선언 한 후 UPX와 .exe 파일을 압축

는 UPX (similar bug)에 대한 버그 리포트가 있지만 ( "응용 프로그램이 제대로 (가 0xc0000005) 초기화하지 못했습니다")는 다른 오류 메시지가 있습니다. 내 경우 OS에서

파일이 손상되었거나 뭔가 생각, 그래서 심지어 오류를 표시하기 시작 질수! 왜??

Win7x64, C++,으로 VisualStudio은 1.47을 향상

, UPX3.07

이상한 뉴스 :

  1. 풀기 EXE가 here으로 정확히 같은 오류가 발생 손상된 EXE한다. 그리고이 압축 해제 된 exe를위한하지 버그 보고서로 포장 ( "응용 프로그램을 제대로 (가 0xc0000005) 초기화하지 못했습니다"). 부스트의 스레드 헤더를 포함하기 전에 중요하지 않습니다.

  2. extern "C" void tss_cleanup_implemented(void) {} 결과는 같습니다.

MAIN.CPP :

#include <boost/thread.hpp> 

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

수 있음 누군가가 컴파일하고 압축하려고합니다?

+1

음, 빌드는 32 비트 실행 결과, 또는 64 비트 실행되도록 부스트 설정되어 있습니까? http://sourceforge.net/tracker/?func=detail&aid=2859708&group_id=2331&atid=352331 – HostileFork

+0

실행 파일은 다른 포장을 시도 32 비트 – Sergey

+0

입니다 (창에 UPX 64 비트 바이너리를 지원하지 않습니다), 그냥 TLS 콜백은 지원되지 않습니다 "기록 " – Sergey

답변

1

새 버전 3.08에서 버그가 수정되었습니다. 이제 괜찮아.