IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Code compilé a la volé : CodeDom (ControlScript)


Sujet :

VB.NET

Vue hybride

grenouillesiverte Code compilé a la volé :... 02/01/2008, 22h24
Pol63 il y a eut plusieurs exemple... 02/01/2008, 22h28
grenouillesiverte Voici une partie de la... 03/01/2008, 01h42
Pol63 tonobjetassembly.gettype.getme... 03/01/2008, 10h50
Bluedeep J'ai donné récemment un... 03/01/2008, 10h52
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Par défaut Code compilé a la volé : CodeDom (ControlScript)
    bonsoir a tous

    je passe mon application de VB6 en 2005

    je cherche beaucoup et trouve peu d'exemple en Vb (pas de souci en C#, mais je ne connais pas)

    j'aimerais utiliser la nouvelle mouture de 2005 qui remplace le ScriptControl.

    Dans mon appli les utilisateurs saisisent du code pour personnaliser l'apli.

    pour comprendre l'utilisation de CodeDom j'aimerais faire compiler en memoire le programme suivant :
    a premiere vue ca a l'air d'etre simple loin de la
    merci de votre contribution

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    il y a eut plusieurs exemple d'utilisation de codedom posté sur le forum vb, utilise la fonction recherche
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Par défaut Voici une partie de la reponse!
    J'ai créer une Form avec un Bouton et un Textbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    txbScript.Text= "Imports System
    Imports Microsoft.VisualBasic 
     
    NameSpace Test
    	Class TestCode
    		Public Sub Main()
    			msgbox("hjkh")
    			msgbox(5*2)
    		End Sub
    	End Class
    End NameSpace"
    Code du Form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Private Sub butExecuter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butExecuter.Click
    	ExecuteCommand1()
    End Sub
     
    Private Sub ExecuteCommand1()
    	Dim vbCodeProv As VBCodeProvider = New VBCodeProvider
    	Dim cParam As CodeDom.Compiler.CompilerParameters = New CodeDom.Compiler.CompilerParameters
     
    	' Ajout des références
    	cParam.ReferencedAssemblies.Add("System.dll")
     
    	' Options du compilateur
    	cParam.CompilerOptions = "/t:library"	'L'assembly est une bibliothèque de classe,
    	cParam.GenerateInMemory = True	'générée uniquement en mémoire.
     
    	' Résultat de la compilation
    	Dim cResult As CodeDom.Compiler.CompilerResults = vbCodeProv.CompileAssemblyFromSource(cParam, txbScript.Text)
     
    	If cResult.Errors.Count > 0 Then
    		Dim Errors As String = "Erreur(s) : "
    		For Each ce As CodeDom.Compiler.CompilerError In cResult.Errors
    			Errors &= vbCrLf & ce.ErrorText
    		Next ce
    		MsgBox(Errors)
     
    	End If
     
    	' Récupération de l'assembly généré
    	Dim myAssembly As System.Reflection.Assembly = cResult.CompiledAssembly
    End Sub
    Voila quant j'execute et click sur le bouton la compilation en memoire est correcte mais je n'arrive pas a trouver la facon d'ecxecuter ce VB

    Pour Ceux qui comprennent les objet System.Reflection et VBCodeProvider : Merci de votre aide

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    tonobjetassembly.gettype.getmethod("nom_de_la_sub").invoke
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    J'ai donné récemment un exemple simple de calcul de formule utilisant la génération via CodeDom et exécutant le code généré. Regarde et traduit le en VerBeux

Discussions similaires

  1. les fichiers .class ne se compilent pas à la volé?
    Par talbi404 dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 20/12/2006, 19h39
  2. Réponses: 4
    Dernier message: 04/08/2006, 01h02
  3. Réponses: 2
    Dernier message: 25/07/2006, 11h52
  4. Code compilable sous Windows et Unix
    Par xzed dans le forum C
    Réponses: 9
    Dernier message: 16/05/2006, 16h06
  5. [CODE] Compilation conditionnelle ?
    Par Cornell dans le forum Langage
    Réponses: 3
    Dernier message: 16/09/2003, 18h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo