วิธีการเรียกใช้แอสเซมบลี Visual Basic .NET หรือ Visual Basic 2005 จาก Visual Basic 6.0

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 817248 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

บทนำ

บทความนี้อธิบายวิธีใช้ Microsoft Visual Basic .NET หรือ Microsoft Visual Basic 2005 เมื่อต้องสร้างแอสเซมบลีที่ได้รับการจัดการที่สามารถเรียกได้จาก Microsoft Visual Basic 6.0

ข้อมูลเพิ่มเติม

แนวทางสำหรับ exposing ชนิด.NET COM

เมื่อต้องการแสดงชนิดในแอสเซมบลีของ Microsoft .NET กับโปรแกรมประยุกต์รุ่นของวัตถุคอมโพเนนต์ (COM) ให้พิจารณาข้อกำหนด interop COM ต่อไปนี้ขณะออกแบบ (ชนิดที่ได้รับการจัดการคลาส,อินเทอร์เฟซ,struct,enumและอื่น ๆ) โต้ตอบกับแอปพลิเคชันไคลเอนต์ COM ด้วยเมื่อคุณทำตามคำแนะนำเหล่านี้:
  • กำหนดอินเทอร์เฟซ และเปิดใช้งานเหล่านั้นในคลาสที่ COM interop แสดงกลไกการเพื่อสร้างอินเทอร์เฟซที่ประกอบด้วยสมาชิกทั้งหมดของคลาและสมาชิกของคลาของพื้นฐาน โดยอัตโนมัติ อย่างไรก็ตาม มันจะดีที่สุดเพื่อให้การอินเทอร์เฟซที่ชัดเจน และใช้แฟ้มเหล่านั้นได้
  • กำหนดชนิดที่ได้รับการจัดการทั้งหมดที่คุณต้องการเปิดเผยการ COM เป็นสาธารณะ การลงทะเบียน และส่งออกไปยังไลบรารีชนิดสาธารณะชนิดเท่านั้นในแอสเซมบลี ดังนั้น ชนิดที่สาธารณะเท่านั้นสามารถมองเห็น COM.
  • กำหนดชนิดของสมาชิกทั้งหมด (วิธี คุณสมบัติ ฟิลด์ และเหตุการณ์) ที่คุณต้องการเปิดเผยการ COM เป็นสาธารณะ สมาชิกของชนิดสาธารณะยังต้องสาธารณะสามารถมองเห็น COM. โดยค่าเริ่มต้น ชนิดสาธารณะและสมาชิกทั้งหมดจะปรากฏขึ้น ใช้แบบComVisibleAttributeคุณลักษณะถ้าคุณต้องซ่อนเป็นประเภทหรือเป็นสมาชิกจากการมองเห็นตัวควบคุมชนิดหรือสมาชิกกับแอปพลิเคชันไคลเอนต์ COM
  • ชนิดต้องมีการสร้างการเริ่มต้นที่สาธารณะไปเป็น instantiated ผ่าน Managed COM. ชนิดที่สาธารณะมองเห็น COM. อย่างไรก็ตาม ไม่ มีการสร้างการเริ่มต้นที่สาธารณะ (ที่สร้างโดยไม่ต้องการอาร์กิวเมนต์), COM ไคลเอ็นต์ไม่สามารถสร้างอินสแตนซ์ของชนิดได้ ไคลเอ็นต์ COM ยังสามารถใช้ชนิดถ้าชนิดมี instantiated ด้วยวิธีอื่น และอินสแตนซ์ที่มีการส่งคืนไปยังไคลเอนต์ COM คุณอาจรวม constructors overloaded ที่ยอมรับอาร์กิวเมนต์ varying สำหรับชนิดต่าง ๆ เหล่านี้ อย่างไรก็ตาม constructors ที่ยอมรับอาร์กิวเมนต์อาจเท่านั้นถูกเรียกจากรหัส (.NET) ที่ได้รับการจัดการ
  • ชนิดไม่สามารถ abstract ใช่ไคลเอนต์ COM หรือ.NET ไคลเอ็นต์สามารถสร้างอินสแตนซ์ของชนิด abstract ได้
  • ใช้แบบCOMClassแม่แบบ ใน Visual Basic .NET หรือ Visual Basic 2005 เมื่อคุณเพิ่มคลาใหม่ที่คุณต้องการให้โปรแกรมประยุกต์ COM ให้ลองใช้การCOMClassแม่แบบที่ให้ไว้ โดย Visual Basic .NET หรือ Visual Basic 2005 กระบวนการCOMClasstemplate creates a class that includes theCOMClassAttributeattribute and generates GUIDs for the CLSID, the Interface ID, and the Event ID that are exposed by your type. นอกจากนี้COMClasstemplate creates a public constructor without parameters. This is the easiest way to create a new class that follows the guidelines for creating COM callable types.

Registering the .NET assembly for COM interop and creating a type library

For Visual Basic 6.0 to successfully interact with a managed component, you must register the assembly for COM interop and generate a type library. This registration must be performed on each computer where a COM client application interacts with the assembly. The type library provides type information about the exposed types in the assembly to COM client applications. The process for doing this depends on if you are working on the development computer or on the destination computer.

On the development computer, Microsoft Visual Studio .NET or Microsoft Visual Studio 2005 automatically creates a type library and registers it during the build process if theลงทะเบียนสำหรับ Interop COMcheck box is selected under the project'sconfigurationคุณสมบัติ If you used theCOMClasstemplate when you created the class, Visual Studio .NET or Visual Studio 2005 automatically selects theลงทะเบียนสำหรับ Interop COMกล่องกาเครื่องหมาย เมื่อต้องการตรวจสอบว่า การลงทะเบียนสำหรับ Interop COMcheck box is selected in Visual Studio .NET or in Visual Studio 2005, follow these steps:
  1. เริ่ม Visual Studio .NET หรือ Visual Studio 2005
  2. Open the solution that contains the project that you want to build for COM interop.
  3. ในการมุมมองเมนู คลิกSolution Explorer.
  4. In Solution Explorer, right-click the project that you want to build for COM interop, and then clickคุณสมบัติ.
  5. คลิกคุณสมบัติการตั้งค่าคอนฟิก, and then click theการสร้างโหน

    หมายเหตุ:ใน Visual Studio 2005 คลิกการคอมไพล์in the left pane.
  6. คลิกเพื่อเลือกนั้นRegister for COM Interopกล่องกาเครื่องหมาย This option is only enabled in class library projects.
  7. คลิกตกลงเมื่อต้องการปิดการProperty Pagesกล่องโต้ตอบ
If Visual Studio .NET or Visual Studio 2005 is not installed or if you have to manually generate and register a type library (.tlb) file for the managed assembly, use the Assembly Registration tool (RegAsm.exe) with the/TLBสลับไป You should also use the/Codebaseswitch if the managed assembly is a private assembly and you intend to put the managed assembly in a different folder from the host process (EXE).

A private assembly is deployed with an application and is available for the exclusive use of that application. Other applications do not share the private assembly. Private assemblies are designed to be installed into the same folder as the host process (EXE). With a COM client application, this means that the assembly is located in the same folder as that application. A shared assembly is available for use by multiple applications on the computer. To create a shared assembly, you must sign the assembly with a strong name and install the assembly into the Global Assembly Cache (GAC) on the destination computer.

For more information about how to sign the assembly with a strong name and install the assembly into the Global Assembly Cache (GAC), visit the following Microsoft Web site:
http://msdn2.microsoft.com/en-us/library/xc31ft41(vs.71).aspx
You should use both the/tlb:สลับและ/Codebaseswitch when you register the assembly. กระบวนการ/tlb:switch generates and registers a type library, and the/Codebaseswitch registers the location of the managed assembly in the Windows registry. If you do not use the/Codebaseswitch and the assembly has not been installed into the Global Assembly Cache (GAC), you must put a copy of the assembly into the folder of each COM client application (EXE) so that the assembly can be located by the common language runtime (CLR).

To generate and register a type library and register the location of the managed assembly, type the following command at the command prompt:
RegasmAssemblyName.dll/tlb:FileName.tlb/codebase

Create a COM callable assembly in Visual Basic .NET

  1. เริ่ม Visual Studio .NET หรือ Visual Studio 2005
  2. ในการแฟ้ม:เมนู ให้ชี้ไปที่ใหม่แล้ว คลิกProject.
  3. ภายใต้ชนิดโครงการคลิกvisual โครงการพื้นฐาน.

    หมายเหตุ:In Visual Studio2005 clickvisual Basicภายใต้ชนิดโครงการ.
  4. ภายใต้แม่แบบคลิกClass Library.
  5. Name the project TestProj, and then clickตกลง.

    By default, Class1 is created.
  6. ในการมุมมองเมนู คลิกSolution Explorer.
  7. คลิกขวาClass1.vbแล้ว คลิกลบ. คลิกตกลงto confirm the deletion of the Class1.vb source file.
  8. ในการProjectเมนู คลิกAdd Class.
  9. ภายใต้แม่แบบคลิกCOM Class.
  10. Name the class COMClass1.vb, and then clickOPEN

    COMClass1 is created with the following code.
    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _
    Public Class ComClass1
    
    #Region "COM GUIDs"
        ' These  GUIDs provide the COM identity for this class 
        ' and its COM interfaces. If you change them, existing 
        ' clients will no longer be able to access the class.
        Public Const ClassId As String = "6DB79AF2-F661-44AC-8458-62B06BFDD9E4"
        Public Const InterfaceId As String = "EDED909C-9271-4670-BA32-109AE917B1D7"
        Public Const EventsId As String = "17C731B8-CE61-4B5F-B114-10F3E46153AC"
    #End Region
    
        ' A creatable COM class must have a Public Sub New() 
        ' without parameters. Otherwise, the class will not be 
        ' registered in the COM registry and cannot be created 
        ' through CreateObject.
        Public Sub New()
            MyBase.New()
        End Sub
    
    End Class
  11. Add the following function to COMClass1.
       Public Function myFunction() As Integer
          Return 100
       End Function
  12. คลิกขวาใน Explorer โซลูชันProject Nameแล้ว คลิกคุณสมบัติ.
  13. ภายใต้คุณสมบัติการตั้งค่าคอนฟิกคลิกการสร้าง.
  14. ตรวจสอบว่า การลงทะเบียนสำหรับ Interop COMกล่องกาเครื่องหมายเลือก และจากนั้น คลิกตกลง.
  15. ในการการสร้างเมนู คลิกสร้างโซลูชันเมื่อต้องสร้างโครงการ
  16. เริ่ม Visual Basic 6.0
  17. ในการแฟ้ม:เมนู คลิกโครงการใหม่จากนั้น คลิกเพื่อเลือกEXE มาตรฐานในการโครงการใหม่กล่องโต้ตอบ

    โดยค่าเริ่มต้น แบบฟอร์มที่มีชื่อ Form1 ถูกสร้างขึ้น
  18. ในการProjectเมนู คลิกอ้างอิง:.
  19. ในการการอ้างอิงที่มีอยู่รายการ คลิกสองครั้งเพื่อเลือกTestProjแล้ว คลิกตกลง.
  20. เพิ่มปุ่มคำสั่งไปยังแบบฟอร์ม
  21. คลิกสองครั้งCommand1เมื่อต้องการเปิดรหัสหน้าต่าง
  22. เพิ่มรหัสต่อไปนี้ไปCommand1_Clickเหตุการณ์
    Dim myObject As TestProj.COMClass1
    Set myObject = New TestProj.COMClass1
    MsgBox myObject.myFunction
  23. ในการเรียกใช้เมนู คลิกเริ่มการทำงาน.
  24. คลิกที่ปุ่มคำสั่ง

    คุณควรได้รับข้อความที่แสดง 100

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติม โปรดเยี่ยมชมเว็บไซต์ต่อไปนี้ของ Microsoft::
interoperating ด้วยรหัสที่ไม่มีการจัดการ
.aspx http://msdn2.microsoft.com/en-us/library/sd10k43k (vs.71)

คุณสมบัติ

หมายเลขบทความ (Article ID): 817248 - รีวิวครั้งสุดท้าย: 14 มกราคม 2554 - Revision: 4.0
ใช้กับ
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft .NET Framework 2.0
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Keywords: 
kbvs2005applies kbvs2005swept kbnamespace kbdll kbcominterop kbinterop kbautomation kbhowtomaster kbmt KB817248 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:817248

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com