2010-09-17 88 views
0

我想只得到一個VB.net應用程序能在一個外部文件來執行LUA腳本,並能增加一些功能到Lua也一樣,要做到這一點我有此代碼:的Lua在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 

但它錯誤的註冊功能,說「對象引用未設置爲對象的實例」。你知道一個使用lua的VB.net項目嗎?或知道如何解決這個問題?

回答

2

您正在註冊一項功能,但您忘了寫它。粘貼到您的表單代碼:

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

AHA!問題在於它不是公衆分! (雖然我確實擁有它,但我並沒有把我的整個代碼放在裏面。) – 2010-09-17 17:41:49

+1

不,那些糟糕的代碼片段之外的真正問題是,你忘記爲GetMethod()指定BindingFlags。您需要BindingFlags.NonPublic或BindingFlags.Instance或BindingFlags.Public。作爲記錄。 – 2010-09-17 21:51:04