Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Codice esterno... [vb.net]
Forum - C# / VB.NET - Codice esterno... [vb.net]

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
marco1 (Normal User)
Pro


Messaggi: 157
Iscritto: 12/02/2009

Segnala al moderatore
Postato alle 21:05
Mercoledì, 14/10/2009
SAlve... io sto facendo un programma che premendo un pulsante doverebbe aviare un codicie esterno scritto in vb... il codice deve essere esterno perchè puo essere cambiato...

Cosa mi consiglate peravviare un file di codice esterno da un exe ???
E come comunicare con esso??

PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 21:23
Mercoledì, 14/10/2009
Che intendi per "codice esterno"? Dove si trova questo codice?

PM Quote
Avatar
GoLDBeRG (Ex-Member)
Expert


Messaggi: 331
Iscritto: 19/12/2005

Segnala al moderatore
Postato alle 9:01
Giovedì, 15/10/2009
non puoi avere codice in un txt o in doc modificarlo a tuo piacimento e aspettarti che il programma te lo compili... o fai una dll e poi cambi il codice della dll o non ho capito bene cosa stai dicendo...

PM Quote
Avatar
manvb.net (Member)
Guru


Messaggi: 663
Iscritto: 28/01/2008

Segnala al moderatore
Postato alle 15:51
Giovedì, 15/10/2009
Goldberg, si che si può fare, sul sito robydx viene spiegato bene:
http://robydx.altervista.org/VarieLess23.htm

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 18:49
Giovedì, 15/10/2009
C'è qualche esempio anche nei miei sorgenti, ad esempio in MGraphing.

PM Quote
Avatar
GoLDBeRG (Ex-Member)
Expert


Messaggi: 331
Iscritto: 19/12/2005

Segnala al moderatore
Postato alle 21:33
Giovedì, 15/10/2009
spettacolo mica lo sapevo

PM Quote
Avatar
marco1 (Normal User)
Pro


Messaggi: 157
Iscritto: 12/02/2009

Segnala al moderatore
Postato alle 0:33
Domenica, 18/10/2009
a I Totem ... ho letto un po' la sorgente di MGraphing ... ma non ci ho capito molto... potresti spiegarti a che esempi facevi riferimento???

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 13:58
Domenica, 18/10/2009
Mi riferivo a questo:
Codice sorgente - presumibilmente VB.NET

  1. Private Function CreateEvaluator(ByVal Expression As String) As MethodInfoPlus
  2.         Dim RealExpression As String = Expression
  3.         Dim FunctionX As New Regex("(?<Function>\w)\s*=\s*")
  4.         Dim M As Match = FunctionX.Match(Expression)
  5.  
  6.         If M.Success Then
  7.             If M.Groups("Function").Value.ToLower = "y" Then
  8.                 EvaluateX = True
  9.             Else
  10.                 EvaluateX = False
  11.             End If
  12.         Else
  13.             Throw New ArgumentException("Espressione non valida!")
  14.         End If
  15.  
  16.         If Expression.IndexOf("=") > -1 Then
  17.             RealExpression = Expression.Remove(0, Expression.IndexOf("=") + 1)
  18.         End If
  19.  
  20.         Dim Code As String = _
  21.         "Imports Microsoft.VisualBasic" & vbCrLf & _
  22.         "Imports System" & vbCrLf & _
  23.         "Imports System.Math" & vbCrLf & _
  24.         "Public Class Evaluator" & vbCrLf & _
  25.         "    Public Function Evaluate(ByVal X As Single) As Single" & vbCrLf & _
  26.         "        Return " & RealExpression & vbCrLf & _
  27.         "    End Function" & vbCrLf & _
  28.         "End Class" & vbCrLf
  29.  
  30.         If Not EvaluateX Then
  31.             Code = Code.Replace("X", "Y")
  32.         End If
  33.  
  34.         Dim Parameters As New CodeDom.Compiler.CompilerParameters
  35.         With Parameters
  36.             .GenerateExecutable = False
  37. #If DEBUG Then
  38.             .IncludeDebugInformation = True
  39.             .TempFiles.KeepFiles = True
  40.             .GenerateInMemory = False
  41. #Else
  42.             .TreatWarningsAsErrors = True
  43.             .TempFiles.KeepFiles = False
  44.             .GenerateInMemory = True
  45. #End If
  46.             .ReferencedAssemblies.Add("Microsoft.VisualBasic.dll")
  47.             .ReferencedAssemblies.Add("System.dll")
  48.         End With
  49.  
  50.         Dim Provider As New VBCodeProvider
  51.         Dim CompResults As CompilerResults = Provider.CompileAssemblyFromSource(Parameters, Code)
  52.  
  53.         If CompResults.Errors.Count > 0 Then
  54.             Dim Msg As String = ""
  55.             For Each Err As CompilerError In CompResults.Errors
  56.                 Msg &= Err.ToString & vbCrLf
  57.             Next
  58.             'MsgBox(Msg, MsgBoxStyle.Critical)
  59.             Throw New ArgumentException("Espressione non valida!")
  60.         Else
  61.             Dim Asm As Reflection.Assembly = CompResults.CompiledAssembly
  62.             Dim Evaluator As Object = Asm.CreateInstance("Evaluator")
  63.             Dim EvalMethod As Reflection.MethodInfo = Evaluator.GetType.GetMethod("Evaluate")
  64.             Dim Result As MethodInfoPlus
  65.             Result.Method = EvalMethod
  66.             Result.Target = Evaluator
  67.             Return Result
  68.         End If
  69.     End Function
  70.  
  71.     Private Function Evaluate(ByVal Method As MethodInfoPlus, ByVal Value As Single) As Single
  72.         Dim Args() As Object = {Value}
  73.         Dim Result As Object = Method.Method.Invoke(Method.Target, Args)
  74.         Return CSng(Result)
  75.     End Function


PM Quote
Avatar
marco1 (Normal User)
Pro


Messaggi: 157
Iscritto: 12/02/2009

Segnala al moderatore
Postato alle 16:46
Lunedì, 19/10/2009
Ok... l'ho letto e ho capito come funziona... pero ho ancora qualche problema... quindi mi potresti aiutare...
> io vorrei fare una classe chiamata 'ExternCode'
> che contiene 3 variabili di tipo MethodInfoPlus (quella structure che hai fatto) cosi posso invokare i metodi quando vogli
> Una funzione che richiede l'inditizzo di un file *txt la quale lo apre e mette le tre funzioni del file:
'OpenMethod'
'SetMethod'
'EndGetMethod'
nelle 3 variabili MethodInfoPlus (Metod e Target)...
> E altre 3 funzioni che richiedano le variabili rispettivamente richieste dalle 3 funzioni carichate e ne svolga l'operato. le funzioni sarebbero:
'Run_OpenMethod'
'Run_SetMethod'
'Run_EndGetMethod'

Che codice dovrei usare????

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo