Select the product you need help with
วิธีการรับที่อยู่ของตัวแปรใน Visual Basicหมายเลขบทความ (Article ID): 199824 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้ เนื้อหาบนหน้านี้สรุปลประเภทนี้สำหรับโปรแกรมเมอร์ Visual Basic เพื่อต้องการได้รับข้อมูลที่ระดับต่ำบนตัวแปร เช่นที่อยู่ของหน่วยความจำได้ อย่างไรก็ตาม ไม่มีบางฟังก์ชัน API ที่ต้องใช้ข้อมูลเช่น บทความนี้อธิบายถึงฟังก์ชัน Visual Basic ดังต่อไปนี้ที่อาจช่วยให้โปรแกรมเมอร์ Visual Basic เพื่อรับทราบข้อมูลนี้: VarPtr - ส่งกลับค่าที่อยู่ของตัวแปร VarPtrArray - ที่อยู่ของอาร์เรย์ที่ส่งกลับค่า StrPtr - ส่งกลับค่าที่อยู่ของบัฟเฟอร์ของสายอักขระ UNICODE VarPtrStringArray - ส่งกลับค่าอาร์เรย์ของสายอักขระอยู่ ObjPtr - ส่งกลับตัวชี้ไปยังอินเทอร์เฟซถูกอ้างอิง โดยวัตถุ ตัวแปร ข้อมูลเพิ่มเติมคำเตือน: ฟังก์ชันต่อไปนี้อย่างน้อยหนึ่งจะถูกกล่าวถึงในบทความนี้ ObjPtr VarPtrStringArray, StrPtr, VarPtr, VarPtrArray, ฟังก์ชันเหล่านี้ไม่ได้รับการสนับสนุน โดยการสนับสนุนทางเทคนิคของ Microsoft พวกเขาไม่ได้รายละเอียดในเอกสารคู่มือ Visual Basic และให้ไว้ในบทความ Knowledge Base นี้ "ตามที่เป็นอยู่" Microsoft ไม่รับประกันว่า พวกเขาจะพร้อมใช้งานในการนำออกใช้ในอนาคตของ Visual Basic VarPtrสามารถใช้ฟังก์ชันนี้เพื่อรับที่อยู่ของตัวแปรหรือองค์ประกอบแถวลำดับ ใช้ชื่อตัวแปรหรือองค์ประกอบของอาร์เรย์เป็นพารามิเตอร์ และส่งกลับค่าอยู่ อย่างไรก็ตาม คุณควรทราบว่า อาร์เรย์แบบไดนามิกที่ไม่ได้ล็อกอาจสามารถจัดสรรใหม่ โดย Visual Basic ดังนั้นคุณต้องระวังมากเมื่อคุณใช้ VarPtr เพื่อรับที่อยู่ขององค์ประกอบแถวลำดับตัวอย่างต่อไปนี้ได้รับที่อยู่ของตัวแปร: ตัวอย่างนี้ได้รับที่อยู่ขององค์ประกอบที่สี่ของอาร์เรย์: ข้อจำกัด: ไม่สามารถใช้ฟังก์ชัน VarPtr เพื่อรับที่อยู่ของอาร์เรย์ สำหรับข้อมูลเพิ่มเติม ดูฟังก์ชัน VarPtrArray VarPtrArrayอาร์เรย์ใน Visual Basic ถูกจัดเก็บเป็น SAFEARRAYs เมื่อต้องการรับที่อยู่ของโครงสร้าง SAFEARRAY คุณจำเป็นต้องใช้ฟังก์ชัน VarPtrArray ต่อไปนี้จะประกาศ 5.0 Visual Basic และ Visual Basic 6.0 ตามลำดับ:การรับที่อยู่ของ SAFEARRAY ผ่านชื่อ SAFEARRAY (รวมถึงการใส่วงเล็บ) ไปยังฟังก์ชัน VarPtrArray: ข้อจำกัด: ฟังก์ชัน VarPtrArray ไม่สามารถใช้เพื่อรับที่อยู่ของอาร์เรย์ของสตริงการ เนื่องจาก Visual Basic ไม่แปลงสายอักขระ UNICODE/ANSI ถ้าคุณใช้ VarPtrArray ในอาร์เรย์ของสตริงการ คุณจะได้รับข้อความแสดงที่อยู่ของ ANSI สำเนาชั่วคราวของอาร์เรย์ สำหรับข้อมูลเพิ่มเติม ดูฟังก์ชัน VarPtrStringArray StrPtrสายอักขระใน Visual Basic จะถูกเก็บไว้เป็นของ BSTR ถ้าคุณใช้ VarPtr ที่ในตัวแปรชนิดสตริง คุณจะได้รับข้อความแสดงที่อยู่ของ BSTR ซึ่งเป็นตัวชี้เป็นชี้ของสายอักขระ เมื่อต้องการรับที่อยู่ของบัฟเฟอร์สตริงเอง คุณจำเป็นต้องใช้ฟังก์ชัน StrPtr ฟังก์ชันนี้ส่งกลับค่าที่อยู่ของอักขระตัวแรกในสายอักขระ นำเข้าบัญชีว่า สายอักขระจะถูกเก็บไว้เป็น UNICODE ใน Visual Basicเพื่อรับที่อยู่ของอักขระแรกของสตริงที่ ผ่านสายอักขระตัวแปรไปยังฟังก์ชัน StrPtr ตัวอย่าง: คุณสามารถใช้ฟังก์ชันนี้เมื่อคุณจำเป็นต้องผ่านตัวชี้ไปยังสตริ UNIOCODE กับการเรียกใช้ API VarPtrStringArrayVarPtrStringArray ได้รับที่อยู่ของอาร์เรย์ของสายอักขระ เมื่อต้องการหลีกเลี่ยงการแปลง UNICODE/ANSI ทรินสิกที่ดำเนินการ โดย Visual Basic ประกาศที่ได้ถูกกำหนดไว้ในไลบรารีชนิดอีกวิธีหนึ่งคือ คุณสามารถใช้คอมไพเลอร์ MIDL การคอมไพล์ชนิดไลบรารีของคุณเองจากไฟล์.odl ดังต่อไปนี้ สำหรับ Visual Basic 6.0 สร้างแฟ้มข้อความที่ชื่อว่า VB6ptrlib.odl มีเนื้อหาด้านล่างนี้: สำหรับ Visual Basic 5.0 สร้างแฟ้มข้อความที่ชื่อว่า VB5ptrlib.odl มีเนื้อหาด้านล่างนี้: ใช้บรรทัดคำสั่งต่อไปนี้ในการคอมไพล์แฟ้ม.odl ก่อนหน้านี้ ด้วยคอมไพล์เลอร์ MIDL การสร้าง Visual Basic 6.0 หรือ Visual Basic 5.0 ชนิดไลบรารี (.tlb) แฟ้มตามลำดับ: MIDL /t VB6ptrlib.odl
MIDL /t VB5ptrlib.odl เมื่อต้องการใช้ฟังก์ชัน VarPtrStringArray ในโครงการของคุณ คุณจำเป็นต้องสร้างการอ้างอิงไปยังไลบรารีชนิดที่คุณเพิ่งสร้างขึ้น ตัวอย่าง: ObjPtrObjPtr ชื่อตัวแปรวัตถุเป็นพารามิเตอร์ที่ใช้เวลา และได้รับที่อยู่ของอินเทอร์เฟซถูกอ้างอิง โดยตัวแปรวัตถุนี้สถานการณ์สมมติที่หนึ่งของการใช้ฟังก์ชันนี้ได้เมื่อคุณจำเป็นต้องทำการเรียกเก็บเงินของวัตถุ โดยการทำดัชนีวัตถุใช้อยู่นั้นเป็นคีย์ คุณสามารถเข้าถึงวัตถุเร็วกว่า walking คอลเลกชัน และการใช้เป็นผู้ให้บริการได้ ในหลายกรณี ที่อยู่ของวัตถุเป็นสิ่งที่เชื่อถือได้เท่านั้นจะใช้เป็นคีย์ ตัวอย่าง: คุณสมบัติหมายเลขบทความ (Article ID): 199824 - รีวิวครั้งสุดท้าย: 28 มกราคม 2554 - Revision: 5.0 ใช้กับ
แปลโดยคอมพิวเตอร์ ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:199824
(http://support.microsoft.com/kb/199824/en-us/
)
| การแปลบทความ
|




กลับไปด้านบน








