02-10-12, 01:42 AM
كاتب الموضوع : samerselo
استخدام كود فيجول بيزيك دوت نيت في فيجول بيزيك 6
يمكن للبرامج المبنية على 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
- افتح خصائص المشروع واضغط الزر Assembly Information من الصفحة Application وتأكد من وضع إشارة بجانب Make Assembly COM-Visible ثم اضغط OK
- من صفحة 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