02-10-12, 01:41 AM
كاتب الموضوع : samerselo
يمكن للبرامج المبنية على COM مثل VB6 التعامل مع الكود الخاص بك والمكتوب ضمن الفريموورك مثل Class - Interface - struct - enum إذا تم اتباع القواعد التالية بشكل عام
- يجب على الفئات تعريف واجهة
- التعريف باستخدام Public
- الأنواع Types لايمكن أن تكود مجردة
كما يمكنك تحديد فيما إذا كان يمكن أو لايمكن رؤية الإجراء أو الكلاس أو ... الخ من عملي الـ com باستخدام ComVisibleAttribute كالمثال
كود :
Imports System.Runtime.InteropServices
<ComVisible(False)> _
Class SampleClass
Public Sub New()
'Insert code here.
End Sub
<ComVisible(False)> _
Public Function MyMethod(param As String) As Integer
Return 0
End Function
Public Function MyOtherMethod() As Boolean
Return True
End Function
<ComVisible(False)> _
Public ReadOnly Property MyProperty() As Integer
Get
Return MyProperty
End Get
End Property
End Class
كود :
TlbExp AssemblyName /out:FileName
كود :
RegAsm AssemblyName /tlb: FileName.tlb /codebase
- افتح بيئة التطوير وابدأ مشروعا جديدا من نوع Class Library وسمه TestProj فيتم انشاء Class1 افتراضيا
- ادخل الكود التالي في Class1
كود :
Option Strict On
Public Class Class1
Public Function myFunction() As Integer
Return 100
End Function
End Class
- من صفحة Compile تأكد من وضع إشارة بجانب Register for COM Interop
- قم بالحفظ ثم قم بعمل Build للمشروع
- افتح VB6 ثم قم بإنشاء مشروع افتراضي جديد
- من قائمة Project اختر References ومن Available References اختر اسم مشروعنا TestProj ثم اضغط Ok
- ضع زر أوامر على النموذج الخاص بمشروعك ثم انقر عليه نقرا مزدوجا لينقلك إلى محرر الكود و في الحدث Button1_Click أدخل الكود التالي
كود :
Dim myObject As TestProj.Class1
Set myObject = New TestProj.Class1
MsgBox myObject.myFunction
كما يمكن الاستفادة من Microsoft Interop Forms Toolkit 2.0 لهذا الغرض