أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

كيفية ترجمة التعليمات البرمجية برمجياً باستخدام برنامج التحويل البرمجي Visual Basic .NET أو Visual Basic 2005

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية304654
للحصول على إصدار Microsoft Visual C# .NET من هذه المقالة، راجع 304655.

تشير هذه المقالة إلى مساحة الاسم Microsoft .NET Framework فئة مكتبة التالية:
  • System.CodeDom.Compiler
الموجز
كشف برنامج .NET Framework الفئات التي تسمح لك برمجياً الوصول Visual Basic .NET أو برنامج التحويل البرمجي اللغة 2005 Visual Basic. قد يكون ذلك أيضاً مفيداً إذا كنت تريد كتابة الأدوات المساعدة "ترجمة التعليمات البرمجية الخاصة بك. توفر هذه المقالة على نموذج التعليمات البرمجية التي تسمح لك ترجمة التعليمات البرمجية من مصدر نص. يسمح التطبيق إما فقط إنشاء الملف التنفيذي أو إنشاء الملف التنفيذي ثم تشغيله. يتم عرض أية أخطاء تحدث أثناء عملية التحويل البرمجي في النموذج.
معلومات أخرى

الخطوة 1: متطلبات

  • Visual Studio .NET أو Visual Studio 2005
  • المحول البرمجي اللغة .NET Visual Basic أو Visual Basic المحول البرمجي اللغة 2005

خطوة 2: كيفية ترجمة رمز برمجياً

يوفر برنامج .NET Framework واجهة تنفيذ برنامج التحويل البرمجي ICodeCompiler. فئة VBCodeProvider هذا واجهة ويوفر الوصول إلى مثيلات "منشئ التعليمات البرمجية Visual Basic" و "المترجم التعليمات البرمجية. إنشاء مثيل من VBCodeProvider نموذج التالي ثم يستخدم للحصول على مرجع إلى واجهة ICodeCompiler.

Dim codeProvider As New VBCodeProvider()Dim icc As ICodeCompiler = codeProvider.CreateCompiler				

بمجرد أن يكون لديك مرجعًا إلى واجهة ICodeCompiler يمكنك استخدام ترجمة التعليمات البرمجية المصدر. تمرير المعلمات إلى المحول البرمجي باستخدام فئة CompilerParameters. وفيما يلي مثال:
Dim parameters As New CompilerParameters()Dim results As CompilerResultsparameters.GenerateExecutable = Trueparameters.OutputAssembly = Outputresults = icc.CompileAssemblyFromSource(parameters, SourceText)				

تستخدم التعليمة البرمجية أعلاه الكائن CompilerParameters لإخبار المحول البرمجي الذي تريد إنشاء ملف قابل للتنفيذ (بخلاف إلى DLL) و التي ترغب في إخراج التجميع الناتج إلى القرص. يتم استدعاء CompileAssemblyFromSource حيث يتم تحويلها برمجياً التجميع الخاص بك. يستغرق هذا الأسلوب الكائن معلمات رمز المصدر عبارة عن سلسلة أحرف. بمجرد ترجمة التعليمات البرمجية يمكنك التحقق لمعرفة ما إذا كان هناك أي أخطاء التحويل البرمجي. نحن نستخدم قيمة الإرجاع من CompileAssemblyFromSource ، وهو كائن CompilerResults. يحتوي هذا الكائن على مجموعة errors الذي يحتوي على أية أخطاء أثناء التحويل البرمجي.
If results.Errors.Count > 0 Then   'There were compiler errors   Dim CompErr As CompilerError   For Each CompErr In results.Errors      textBox2.Text = textBox2.Text & _                      "Line number " & CompErr.Line & _                      ", Error Number: " & CompErr.ErrorNumber & _                      ", '" & CompErr.ErrorText & ";" & _      Environment.NewLine & Environment.NewLine   NextEnd If				

هناك خيارات أخرى ترجمة مثل ترجمة من ملف. يمكن أيضاً الدفعية التحويل البرمجي يعني ويمكنك تجميع ملفات أو مصادر متعددة في نفس الوقت. تتوفر معلومات إضافية حول هذه الفئات على MSDN على إنترنت:

الخطوة 3: نموذج متدرجة

  1. إنشاء تطبيق Windows 2005 Visual Basic أو Visual Basic .NET جديد. يتم إنشاء Form1 بشكل افتراضي.
  2. في إطار "عرض رمز" Form1 ، استبدل كافة النص الموجود التعليمة البرمجية التالية:
    Option Strict OnImports System.CodeDom.CompilerPublic Class Form1    Inherits System.Windows.Forms.Form#Region " Windows Form Designer generated code "    Public Sub New()        MyBase.New()        'This call is required by the Windows Form Designer.        InitializeComponent()        'Add any initialization after the InitializeComponent() call    End Sub    'Form overrides dispose to clean up the component list.    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)        If disposing Then            If Not (components Is Nothing) Then                components.Dispose()            End If        End If        MyBase.Dispose(disposing)    End Sub    Friend WithEvents textBox1 As System.Windows.Forms.TextBox    Friend WithEvents button1 As System.Windows.Forms.Button    Friend WithEvents textBox2 As System.Windows.Forms.TextBox    Friend WithEvents button2 As System.Windows.Forms.Button    'Required by the Windows Form Designer    Private components As System.ComponentModel.Container    'NOTE: The following procedure is required by the Windows Form Designer    'It can be modified using the Windows Form Designer.      'Do not modify it using the code editor.    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()        Me.textBox2 = New System.Windows.Forms.TextBox()        Me.textBox1 = New System.Windows.Forms.TextBox()        Me.button1 = New System.Windows.Forms.Button()        Me.button2 = New System.Windows.Forms.Button()        Me.SuspendLayout()        '        'textBox2        '        Me.textBox2.BackColor = System.Drawing.SystemColors.Control        Me.textBox2.BorderStyle = System.Windows.Forms.BorderStyle.None        Me.textBox2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))        Me.textBox2.ForeColor = System.Drawing.SystemColors.WindowText        Me.textBox2.Location = New System.Drawing.Point(264, 56)        Me.textBox2.Multiline = True        Me.textBox2.Name = "textBox2"        Me.textBox2.Size = New System.Drawing.Size(240, 232)        Me.textBox2.TabIndex = 2        Me.textBox2.Text = ""        '        'textBox1        '        Me.textBox1.Location = New System.Drawing.Point(16, 48)        Me.textBox1.Multiline = True        Me.textBox1.Name = "textBox1"        Me.textBox1.Size = New System.Drawing.Size(240, 240)        Me.textBox1.TabIndex = 0        Me.textBox1.Text = "textBox1"        '        'button1        '        Me.button1.Location = New System.Drawing.Point(368, 304)        Me.button1.Name = "button1"        Me.button1.TabIndex = 1        Me.button1.Text = "Build"        '        'button2        '        Me.button2.Location = New System.Drawing.Point(456, 304)        Me.button2.Name = "button2"        Me.button2.TabIndex = 1        Me.button2.Text = "Run"        '        'Form1        '        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)        Me.ClientSize = New System.Drawing.Size(544, 333)        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.button2, Me.textBox1, Me.button1, Me.textBox2})        Me.Name = "Form1"        Me.Text = "Form1"        Me.ResumeLayout(False)    End Sub#End Region    Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click, button2.Click        Dim codeProvider As New VBCodeProvider()        Dim icc As ICodeCompiler = codeProvider.CreateCompiler        Dim Output As String = "Out.exe"        Dim ButtonObject As Button = CType(sender, Button)        textBox2.Text = ""        Dim parameters As New CompilerParameters()        Dim results As CompilerResults        'Make sure we generate an EXE, not a DLL        parameters.GenerateExecutable = True        parameters.OutputAssembly = Output        results = icc.CompileAssemblyFromSource(parameters, textBox1.Text)        If results.Errors.Count > 0 Then            'There were compiler errors            textBox2.ForeColor = Color.Red            Dim CompErr As CompilerError            For Each CompErr In results.Errors                textBox2.Text = textBox2.Text & _                "Line number " & CompErr.Line & _                ", Error Number: " & CompErr.ErrorNumber & _                ", '" & CompErr.ErrorText & ";" & _                Environment.NewLine & Environment.NewLine            Next        Else            'Successful Compile            textBox2.ForeColor = Color.Blue            textBox2.Text = "Success!"            'If we clicked run then launch the EXE            If ButtonObject.Text = "Run" Then Process.Start(Output)        End If    End SubEnd Class					
    ملاحظة يجب أن يتم تغيير التعليمة البرمجية في Visual Basic 2005. إذا قمت بإنشاء نموذج جديد يسمى Form1 في Visual Basic 2005 لديك ملف Form1.vb للحصول على التعليمات البرمجية الخاصة بك وملف Form1.Designer.vb يحتوي على جزء المنشأة تلقائياً. مصمم نماذج Windows يستخدم الكلمة الأساسية الجزئية لتقسيم تطبيق Form1 إلى ملفين منفصلة. يؤدي ذلك إلى منع التعليمات البرمجية صدور مصمم يتم interspersed مع التعليمات البرمجية الخاصة بك. للحصول على مزيد من المعلومات حول التحسينات لغة Visual Basic 2005 قم بزيارة موقع Microsoft التالي على الويب: لمزيد من المعلومات حول فئات جزئية "و" مصمم نماذج Windows قم بزيارة موقع Microsoft التالي على الويب:
  3. تشغيل المشروع. بعد تحميل Form1 انقر فوق الزر إنشاء. لاحظ الحصول على سطرين أخطاء برنامج التحويل البرمجي.
  4. بعد ذلك، قم بنسخ التعليمة البرمجية التالية في مربع نص استبدال أي نص موجود:
    Imports SystemModule Module1    Sub Main()        Console.WriteLine("Hello World!")        Console.WriteLine("Press ENTER")        Console.ReadLine()    End SubEnd Module					
  5. انقر فوق إنشاء مرة أخرى. يجب أن يكون التحويل البرمجي الناجحة.
  6. انقر فوق تشغيل سيتم ترجمة التعليمات البرمجية ثم قم بتشغيل الملف القابل للتنفيذ الناتج. ينشئ الترجمة ملف القابل للتنفيذ يسمى "Out.exe" في نفس المجلد مثل التطبيق الذي تقوم بتشغيله.

    ملاحظة: يمكنك تعديل التعليمات البرمجية في مربع النص لمشاهدة أخطاء برنامج التحويل البرمجي مختلفة. على سبيل المثال، حذف أحد الأقواس ثم إعادة إنشاء التعليمات البرمجية.
  7. وأخيراً ، تعديل التعليمات البرمجية في مربع النص لإخراج آخر سطر من النص إلى إطار وحدة التحكم. انقر فوق تشغيل لمشاهدة الإخراج.
CSharpCodeProvider CompilerParameters ICodeCompiler

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 304654 - آخر مراجعة: 05/11/2007 07:08:50 - المراجعة: 4.7

Microsoft .NET Framework 1.0, Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbmt kbvs2005applies kbvs2005swept kbbcl kbcompiler kbhowto kbprod2web KB304654 KbMtar
تعليقات
&t=">endChild(m); &t=">ge in languagesListForLargeScreens track by $index" class="col-sm-6 col-xs-24 ng-scope"> Paraguay - Español
Venezuela - Español
0&did=1&t=">crosoft.com/c.gif?DI=4050&did=1&t=">