用vb.net语言写个dll,在dll里如何执行主程序里的一个自定义函数
3条回答 默认 最新
急速光粒 2022-08-21 18:25关注可以在dll中提供委托函数,让主程序将其自定义函数注册到dll的委托函数中。然后在dll中调用委托函数实现对主程序的自定义函数调用。
声明一个module用于传递声明委托Module myModule '声明委托 Public myaction As Func(Of String, String) '创建委托 'Public Delegate Function myact(str As String) As Integer 'Public Delegate Sub myact2(str As String) '声明委托 'Public myaction As myact 'Public myaction2 As myact2 Public Mainf As New MainForm Sub Main() Application.EnableVisualStyles() '启用xp视觉样式 Application.Run(Mainf) '加不加()都是调用默认构造函数,最好加 End Sub End Module主程序
Public Class MainForm Dim childF As New ChildForm Private Function Mycall(str As String) As String TextBox1.Text = str Return 123 End Function Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click childF.Show() childF.RSMsg = TextBox1.Text myaction = AddressOf Mycall 'myaction2 = New myact2(AddressOf Mycall) End Sub End Classdll子程序:
Public Class ChildForm Public Property RSMsg() As String Get Return TextBox1.Text End Get Set(ByVal Value As String) TextBox1.Text = Value End Set End Property Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim num As Integer num = myaction.Invoke(RSMsg) End Sub End Class本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用