2011-11-24 13 views
7

जब मैं बस अपना कार्यक्रम में घोषितबूस्ट थ्रेड और यूपीएक्स संपीड़न == वैध Win32 अनुप्रयोग मान्य नहीं है?

boost::thread t1, t2; 

और फिर UPX के साथ exe फ़ाइल सेक, संपीड़न सफल होता है। लेकिन जब मैं संकुचित एक्सई लॉन्च करने का प्रयास करता हूं, तो विंडोज मुझे बताता है कि यह "वैध Win32 एप्लिकेशन नहीं है"।

UPX (similar bug) के लिए एक बग रिपोर्ट नहीं है, लेकिन यह अलग त्रुटि संदेश है ( "अनुप्रयोग ठीक से (0xc0000005) प्रारंभ करने में विफल")।

मेरे मामले में ओएस सोचता है कि फ़ाइल दूषित है या कुछ है, इसलिए यह त्रुटियों को दिखाने के लिए भी शुरू नहीं किया जा सकता है! क्यूं कर??

Win7x64, सी ++, VisualStudio, को बढ़ावा देने के 1.47, UPX3.07

अजीब खबर:

  1. अनपैक exe भ्रष्ट exe कि here के रूप में बिल्कुल वैसा ही त्रुटि फेंकता बनाता है। ("एप्लिकेशन ठीक से (0xc0000005)") प्रारंभ करने में विफल रहा है और यह अनपॅक किए गए exe के लिए है, बग रिपोर्ट में पैक नहीं किया गया है।

  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-बिट निष्पादन योग्य है? (विंडोज़ पर यूपीएक्स 64-बिट बाइनरी का समर्थन नहीं करता है) http://sourceforge.net/tracker/?func=detail&aid=2859708&group_id=2331&atid=352331 – HostileFork

+0

निष्पादन योग्य 32 बिट – Sergey

+0

ने एक और पैकर की कोशिश की, यह सिर्फ लिखता है "टीएलएस कॉलबैक समर्थित नहीं हैं " – Sergey

उत्तर

1

बग की मरम्मत नए संस्करण 3.08 में की गई थी। अब ठिक है।

संबंधित मुद्दे