จะใช้อะไรแทน ReverseBytes?

ด้วย XE8 (ไม่มีการเปลี่ยนแปลงในซีแอตเทิล) ReverseBytes ได้ย้ายจาก FMX.Types เป็น FMX.Utils และถูกทำเครื่องหมายว่าเลิกใช้แล้ว ฟังก์ชันรับบัฟเฟอร์และกลับลำดับของไบต์ เหตุใดจึงถูกทำเครื่องหมายว่าเลิกใช้แล้ว และควรใช้ฟังก์ชันอื่นใดแทน


person DNR    schedule 12.02.2016    source แหล่งที่มา
comment
มีแนวโน้มว่าจะเลิกใช้แล้วมากที่สุดเนื่องจากเป็นวิธีการระดับต่ำที่สกปรกและไม่มีความปลอดภัยด้านประเภท และมีวิธีที่ดีกว่าในการแก้ปัญหาประเภทต่างๆ ที่คุณมักจะใช้ด้วย คุณพยายามจะทำอะไร? นี่เป็นปัญหาการสั่งซื้อไบต์ระหว่างโฮสต์กับเครือข่ายหรือไม่   -  person J...    schedule 12.02.2016
comment
คุณกำลังพยายามแก้ไขปัญหาอะไร ทำไมคุณถึงรู้สึกว่าจำเป็นต้องเรียกใช้ฟังก์ชันนี้ตั้งแต่แรก?   -  person David Heffernan    schedule 12.02.2016
comment
ฉันกำลังอ่าน double (big endian) จากสตรีมไปยังบัฟเฟอร์ ย้อนกลับลำดับไบต์ จากนั้นเข้าถึงหน่วยความจำเป็นสองเท่า   -  person DNR    schedule 12.02.2016
comment
ถ้าอย่างนั้นคุณก็ใช้ฟังก์ชั่นที่ผิด คุณต้องแปลงจากเครือข่ายเป็นโฮสต์ ซึ่งเกิดขึ้นเหมือนกันสำหรับโฮสต์เฉพาะนี้ ค้นหาเครือข่าย 64 บิตเพื่อโฮสต์ฟังก์ชัน แน่นอนว่ามีหนึ่งใน rtl   -  person David Heffernan    schedule 12.02.2016
comment
@DavidHeffernan ฟังก์ชั่นการแปลงเครือข่าย / โฮสต์นั้นคืออะไร? Google ฉบับย่อไม่แสดงอะไรเลย ไม่ว่าจะเป็นวิธีการแบบกำหนดเองหรือใช้ ReverseBytes วิธีที่ OP ถามถึง ดู stackoverflow.com/questions/12966182/ และ stackoverflow.com/questions/13505211/   -  person David    schedule 12.02.2016
comment
@DavidM ฟังก์ชั่นเช่น ntohs, ntohl และอื่น ๆ   -  person David Heffernan    schedule 12.02.2016
comment
ขอบคุณ หากใครต้องการโพสต์สิ่งนั้นเป็นเหตุผลในการเลิกใช้งานฟังก์ชันนี้ ฉันจะยอมรับมัน   -  person DNR    schedule 13.02.2016
comment
@DavidM: หากมีฟังก์ชั่นที่ใช้งานได้ แต่ระบบปฏิบัติการมีให้ในแต่ละแพลตฟอร์มทำไมล่ะ? หรือคำถามของคุณเป็นกรณีของ NIH?   -  person Rudy Velthuis    schedule 15.02.2016
comment
@RudyVelthuis ไม่ มันเป็นกรณีของความต้องการ RTL ข้ามแพลตฟอร์ม เช่น เขียนโค้ดเพียงครั้งเดียว ให้มันทำงานบน Windows / OSX / ฯลฯ บางอย่างเช่นลำดับไบต์ของเครือข่ายดูเหมือนจะเป็นสิ่งที่ดีถ้ามีใน RTL ที่พร้อมใช้งานสำหรับทุกแพลตฟอร์ม   -  person David    schedule 16.02.2016
comment
@DavidM: ฟังก์ชั่นเช่น ntohl(), htonl() ฯลฯ คือ AFAIK มีอยู่ในแพลตฟอร์มส่วนใหญ่ IIRC เป็นฟังก์ชัน POSIX ดังนั้นฉันจึงไม่เห็นความจำเป็นที่ Delphi จะต้องกำหนดนิยามของตัวเอง   -  person Rudy Velthuis    schedule 17.02.2016