2010-09-17 17 views
0

J'essaie juste d'obtenir une application VB.net pour pouvoir exécuter un script lua dans un fichier externe, et être capable d'ajouter quelques fonctions à lua aussi, Pour cela, j'ai ce code:Lua dans Visual Basic.net

Imports LuaInterface 
Public Class Form1 
Public luascripting As New Lua() 
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
luascripting.RegisterFunction("DisplayText", Me, Me.GetType().GetMethod("DisplayText")) 
luascripting.DoFile("script.lua") 
End Sub 
End Class 

Mais il erreurs sur la fonction de registre, en disant "Référence d'objet n'est pas définie à une instance d'un objet." Connaissez-vous un exemple de projet VB.net utilisant lua? Ou savoir comment résoudre ce problème?

Répondre

2

Vous enregistrez une fonction mais vous avez oublié de l'écrire. Collez ceci dans le code de votre formulaire:

Public Sub DisplayText() 
    MsgBox("Works") 
End Sub 
+0

AHA! Le problème était que ce n'était pas un sous-marin public! (Je l'ai eu cependant, je n'ai pas mis tout mon code.) –

+1

Non, le vrai problème au-delà de l'extrait de code médiocre est que vous avez oublié de spécifier BindingFlags pour GetMethod(). Vous avez besoin de BindingFlags.NonPublic ou de BindingFlags.Instance ou de BindingFlags.Public. Pour l'enregistrement. –