用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 Class
dll子程序:
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无用
悬赏问题
- ¥20 测距传感器数据手册i2c
- ¥15 RPA正常跑,cmd输入cookies跑不出来
- ¥15 求帮我调试一下freefem代码
- ¥15 matlab代码解决,怎么运行
- ¥15 R语言Rstudio突然无法启动
- ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法