2013-04-22 3 views
8

डेल्फी XE3 में, प्रतिलिपि फ़ंक्शन का उपयोग स्ट्रिंग प्रकार के लिए या तीसरे पैरामीटर के बिना किया जा सकता है। उदाहरण के लिए,क्यों 64-बिट डेल्फी XE3 में कॉपी फ़ंक्शन अलग-अलग व्यवहार करता है?

s := '1234567890'; 
Writeln(Copy(s, 2)); 

उपरोक्त प्रिंट 234567890 32-बिट EXE के लिए संकलित किए गए हैं। हालांकि जब एक ही कोड 64-बिट EXE तक संकलित होता है, तो यह कुछ भी प्रिंट नहीं करेगा।

यह क्यों है? मुझे वास्तव में ऐसे सभी कोड को बदलना है उदा। कॉपी (एस, 2, लंबाई (ओं) - 1) जब 32-बिट ऐप को 64-बिट पर पोर्ट करते हैं।

+11

http://qc.embarcadero.com/wc/qcmain.aspx?d=113805 – bummi

उत्तर

11

मैं आपके द्वारा रिपोर्ट किए गए व्यवहार को पुन: उत्पन्न नहीं कर सका। जब मैंने उस कोड को पूरी तरह से अद्यतन 64 बिट XE3 में संकलित किया, तो कोड ने अपेक्षित आउटपुट का उत्पादन किया।

मैं निष्कर्ष है कि या तो:

  1. आप पूरी तरह से अपने XE3 स्थापना अद्यतन नहीं किया है।
  2. आपका कोड आपके कोड में मौजूद एक अलग Copy फ़ंक्शन का उपयोग कर रहा है।

QC report को इंगित करने के लिए @ बुम्मी के लिए धन्यवाद जो साबित करता है कि आइटम 1 स्पष्टीकरण है। आपका समाधान (स्पष्ट रूप से) अपडेट लागू करने के लिए है।

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