Bài vi?t này mô t? cách s? d?ng Microsoft Visual Basic.NET
ho?c Microsoft Visual Basic 2005 đ? xây d?ng m?t h?i đ?ng qu?n l? mà có th? đư?c g?i là
t? Microsoft Visual Basic 6.0.
Hư?ng d?n đ? l?.NET lo?i đ? COM
Khi b?n mu?n đ? l? các lo?i trong m?t Microsoft.Qu?c h?i NET đ?
Thành ph?n đ?i tư?ng mô h?nh (COM) các ?ng d?ng, h?y xem xét sau đây COM interop
yêu c?u thi?t k? th?i. Qu?n l? lo?i)
l?p h?c,
giao di?n,
struct,
Enumvà nh?ng ngư?i khác) tương tác t?t v?i các ?ng d?ng khách hàng COM khi b?n
th?c hi?n theo các hư?ng d?n này:
- Xác đ?nh giao di?n và th?c hi?n chúng m?t cách r? ràng trong các l?p h?c.
COM interop cung c?p m?t cơ ch? đ? t? đ?ng t?o ra m?t giao di?n đó
ch?a t?t c? các thành viên c?a các l?p h?c và các thành viên c?a l?p cơ s?. Tuy nhiên,
It's t?t nh?t đ? cung c?p giao di?n r? ràng và th?c hi?n chúng
m?t cách r? ràng.
- Tuyên b? đư?c qu?n l? t?t c? các lo?i mà b?n mu?n đ? l? cho COM như
công c?ng. Ch? công c?ng lo?i trong m?t h?i đ?ng đư?c đăng k? và xu?t kh?u sang các
lo?i thư vi?n. V? v?y, ch? có các lo?i công c?ng đư?c hi?n th? cho COM.
- Tuyên b? t?t c? các lo?i thành viên (phương pháp, tài s?n, các l?nh v?c, và
s? ki?n) mà b?n mu?n đ? l? cho COM là công c?ng. Các thành viên c?a lo?i h?nh công c?ng ph?i
c?ng đư?c công chúng đư?c hi?n th? cho COM. B?i m?c đ?nh, t?t c? các lo?i công c?ng và các thành viên
có th? nh?n th?y. S? d?ng các ComVisibleAttribute thu?c tính n?u b?n có đ? ?n m?t lo?i ho?c m?t thành viên t? ki?m soát
lo?i ho?c tài kho?n c?a t?m nh?n cho các ?ng d?ng khách hàng COM.
- Lo?i ph?i có nhà xây d?ng công c?ng m?c đ?nh là
instantiated qua COM. Managed, lo?i h?nh công c?ng có th? nh?n th?y COM. Tuy nhiên,
N?u không có m?t nhà xây d?ng công c?ng m?c đ?nh (m?t nhà xây d?ng mà không có đ?i s?), COM
khách hàng không th? t?o ra m?t th? lo?i. COM khách hàng v?n có th? s? d?ng các
g? n?u các lo?i instantiated theo cách khác và trư?ng h?p là quay tr? l?i
máy s? d?ng COM. B?n có th? bao g?m các nhà th?u b? quá t?i ch?p nh?n khác nhau
đ?i s? cho các lo?i. Tuy nhiên, nhà th?u ch?p nh?n đ?i s? có th? ch?
đư?c g?i là t? qu?n l? (.NET) m?.
- Lo?i không th? tr?u tư?ng. Không ph?i khách hàng COM c?ng không.NET
khách hàng có th? t?o th? hi?n c?a các lo?i tr?u tư?ng.
- S? d?ng các COMClass tiêu b?n b?ng Visual Basic.NET hay Visual Basic 2005. Khi b?n
thêm m?t l?p m?i mà b?n d? đ?nh s? phơi bày cho các ?ng d?ng COM, xem xét vi?c s? d?ng
các COMClass b?n m?u đư?c cung c?p b?i Visual Basic.NET hay b?i Visual Basic
2005. COMClass tiêu b?n t?o ra m?t l?p h?c bao g?m các COMClassAttribute thu?c tính và t?o ra các GUIDs cho CLSID, giao di?n ID,
và ID s? ki?n ti?p xúc c?a lo?i h?nh c?a b?n. Ngoài ra, các COMClass tiêu b?n t?o ra m?t nhà xây d?ng công c?ng mà không có tham s?. Đi?u này là
cách d? nh?t đ? t?o ra m?t l?p m?i mà sau các nguyên t?c cho vi?c t?o ra
COM callable lo?i.
Đăng k? các.NET Cynulliad Cenedlaethol COM interop và t?o ra m?t thư vi?n ki?u
Cho Visual Basic 6.0 thành công tương tác v?i m?t qu?n l?
thành ph?n, b?n ph?i đăng k? h?i đ?ng cho COM interop và t?o ra m?t lo?i
thư vi?n. Đăng k? này ph?i đư?c th?c hi?n trên m?i máy tính trong trư?ng h?p m?t COM
?ng d?ng khách hàng tương tác v?i h?i đ?ng. Thư vi?n lo?i cung c?p lo?i
thông tin v? các lo?i ti?p xúc v?i trong h?i đ?ng cho các ?ng d?ng khách hàng COM.
Quá tr?nh cho vi?c này ph? thu?c vào n?u b?n đang làm vi?c trên s? phát tri?n
máy tính ho?c trên máy tính đích.
Trên máy tính phát tri?n,
Microsoft Visual Studio.NET ho?c Microsoft Visual Studio 2005 t? đ?ng
t?o ra m?t thư vi?n ki?u và đăng k? nó trong quá tr?nh xây d?ng n?u các
Đăng k? cho COM Interop ki?m tra h?p đư?c ch?n theo các
c?a d? án
Cấu hình b?t đ?ng s?n. N?u b?n s? d?ng các
COMClass tiêu b?n khi b?n t?o l?p, Visual Studio.NET ho?c th? giác
Studio 2005 t? đ?ng ch?n các
Đăng k? cho COM Interoph?p ki?m. Đ? xác minh r?ng các
Đăng k? cho COM Interop ki?m tra
h?p đư?c ch?n trong Visual Studio.NET ho?c trong Visual Studio 2005, làm theo các
bư?c sau:
- B?t đ?u Visual Studio.NET ho?c Visual Studio 2005.
- M? các gi?i pháp có ch?a các d? án mà b?n mu?n
đ? xây d?ng cho COM interop.
- Trên các Xem tr?nh đơn, nh?p vào Gi?i pháp
Thám hi?m.
- Trong gi?i pháp Explorer, b?m chu?t ph?i vào các d? án mà b?n mu?n
đ? xây d?ng cho COM interop, và sau đó nh?p vàoThu?c tính.
- Nh?p vào C?u h?nh thu?c tính, và sau đó
b?m vào các Xây d?ng nút.
Chú ý Trong Visual Studio 2005, nh?p vào Biên d?ch ? bên trái
ngăn. - Nh?n vào đây đ? ch?n các Đăng k? cho COM
Tương hỗ h?p ki?m. Tùy ch?n này ch? kh? d?ng trong l?p h?c thư vi?n
các d? án.
- Nh?p vào Ok đ? đóng nh?ng B?t đ?ng s?n
Các trang h?p tho?i.
N?u Visual Studio.NET ho?c Visual Studio 2005 không đư?c cài đ?t ho?c
N?u b?n đ? t? t?o ra và đăng k? m?t ki?u t?p tin thư vi?n (.tlb) cho
H?i đ?ng qu?n l?, s? d?ng đăng k? h?i công c? (RegAsm.exe) v?i các
/ TLB chuy?n đ?i. B?n c?ng nên s? d?ng các
/ Codebase chuy?n đ?i n?u h?i đ?ng qu?n l? là m?t h?i đ?ng tư nhân và b?n
có ? đ?nh đưa h?i đ?ng đư?c qu?n l? trong m?t thư m?c khác nhau t? quá tr?nh máy ch? lưu tr?
(EXE).
M?t h?i đ?ng tư nhân đư?c tri?n khai v?i m?t ?ng d?ng và
s?n sàng cho vi?c s? d?ng đ?c quy?n c?a ?ng d?ng đó. Các ?ng d?ng khác không
chia s? h?i đ?ng tư nhân. H?i đ?ng tư nhân đư?c thi?t k? đ? đư?c cài đ?t
vào thư m?c tương t? như quá tr?nh máy ch? lưu tr? (EXE). V?i m?t ?ng d?ng khách COM,
Đi?u này có ngh?a r?ng h?i đ?ng n?m trong thư m?c tương t? như ?ng d?ng đó.
M?t h?i đ?ng đư?c chia s? là có s?n đ? s? d?ng b?i nhi?u ?ng d?ng trên các
máy tính. Đ? t?o ra m?t h?i đ?ng đư?c chia s?, b?n ph?i đăng nh?p h?i đ?ng v?i m?t m?nh m?
tên và cài đ?t l?p ráp vào b? nh? Cache h?i toàn c?u (G?C) trên các
máy tính đích.
Cho bi?t thêm thông tin v? làm th? nào đ? đăng các
l?p ráp m?t m?nh m? tên và cài đ?t l?p ráp vào h?i đ?ng toàn c?u
B? nh? cache (G?C), ghé thăm Web site sau c?a Microsoft:
B?n nên s? d?ng c? các
/TLB: chuy?n đ?i và các
/ Codebase chuy?n đ?i khi b?n đăng k? h?i đ?ng. Các
/TLB: chuy?n đ?i t?o ra và đăng k? thư vi?n ki?u, và các
/ Codebase chuy?n đ?i đăng k? v? trí c?a h?i đ?ng đư?c qu?n l? trong các
Windows registry. N?u b?n không s? d?ng các
/ Codebase chuy?n đ?i và h?i đ?ng đ? không đư?c cài đ?t vào toàn c?u
L?p ráp Cache (G?C), b?n ph?i đ?t m?t b?n sao c?a l?p ráp vào thư m?c c?a
m?i ?ng d?ng khách COM (EXE) đ? các h?i đ?ng có th? đư?c đ?nh v? b?ng các
ph? bi?n ngôn ng? runtime (CLR).
Đ? t?o và đăng k? thư vi?n ki?u
và đăng k? v?i v? trí c?a h?i đ?ng qu?n l?, g? l?nh sau đây
t?i d?u nh?c l?nh:
Regasm AssemblyName.dll /TLB: FileName.tlb / codebase
T?o m?t COM callable h?i trong Visual Basic.NET
- B?t đ?u Visual Studio.NET ho?c Visual Studio 2005.
- Trên các Tệp tr?nh đơn, đi?m đ?nM?i, sau đó b?m Dự án.
- Dư?i Các lo?i d? án, b?m Th? giác
Các d? án cơ b?n.
Chú ý Cú nh?p chu?t tr?c quan Studio2005 Visual Basic dư?iCác lo?i d? án. - Dư?i Khuôn mẫu, b?m L?p h?c
Thư vi?n.
- Tên d? án TestProj, và sau đó b?m vàoOk.
Theo m?c đ?nh, Class1 đư?c t?o ra. - Trên các Xem tr?nh đơn, nh?p vào Gi?i pháp
Thám hi?m.
- Nh?p chu?t ph?i Class1.VB, sau đó b?mXóa b?. Nh?p vào Ok xác nh?n xoá c?a
Class1.vb ngu?n t?p tin.
- Trên các Dự án tr?nh đơn, nh?p vào Thêm
L?p h?c.
- Dư?i Khuôn mẫu, b?m COM
L?p h?c.
- Tên l?p COMClass1.vb, và sau đó b?m vàoM?
COMClass1 đư?c t?o ra v?i đo?n m? sau. <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 - Thêm các ch?c năng sau đây đ? COMClass1.
Public Function myFunction() As Integer
Return 100
End Function - Trong gi?i pháp Explorer, b?m chu?t ph?i vàoTên d? án, sau đó b?mThu?c tính.
- Dư?i C?u h?nh thu?c tính, b?mXây d?ng.
- Xác minh r?ng các Đăng k? cho COM Interoph?p ki?m ch?n và b?m Ok.
- Trên các Xây d?ng tr?nh đơn, nh?p vào Xây d?ng
Gi?i pháp đ? xây d?ng các d? án.
- B?t đ?u Visual Basic 6.0.
- Trên các Tệp tr?nh đơn, nh?p vào M?i
Dự án, và sau đó b?m vào đ? ch?n Tiêu chu?n EXE trong cácD? án m?i h?p tho?i.
Theo m?c đ?nh, m?t h?nh th?c đó là
tên Form1 đư?c t?o ra. - Trên các Dự án tr?nh đơn, nh?p vàoTham khảo.
- Trong các Tài li?u tham kh?o có s?n danh sách,
b?m đúp vào đ? ch?n TestProj, sau đó b?mOk.
- Thêm m?t nút l?nh m?u.
- B?m đúp Command1 đ? m? m?
c?a s?.
- Thêm m? sau đây đ? các Command1_Click s? ki?n.
Dim myObject As TestProj.COMClass1
Set myObject = New TestProj.COMClass1
MsgBox myObject.myFunction
- Trên các Ch?y tr?nh đơn, nh?p vàoB?t đ?u.
- Nh?p vào nút l?nh.
B?n s? nh?n đư?c m?t
tin nh?n có hi?n th? 100.
Đ? bi?t thêm chi ti?t, h?y truy c?p trang Web Microsoft sau đây
Trang web:
ID c?a bài: 817248 - L?n xem xét sau cùng: 28 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
- 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
| kbvs2005applies kbvs2005swept kbnamespace kbdll kbcominterop kbinterop kbautomation kbhowtomaster kbmt KB817248 KbMtvi |
Máy d?chQUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:
817248
(http://support.microsoft.com/kb/817248/en-us/
)