You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从VB.NET WinForms项目调用VB.NET DLL中的函数与子程序?

问题排查与解决步骤

1. 检查DLL中类和方法的访问修饰符

这是最常见的问题根源:

  • 你的类必须标记为Public,否则外部项目无法访问该类
  • 如果想直接通过类名.方法名的方式调用(比如你尝试的MFGSystems.Common.Resources.KillAProcess),方法必须标记为Public Shared

示例DLL代码:

Namespace MFGSystems.Common.Resources
    ' 类必须是Public才能被外部项目访问
    Public Class ProcessTools
        ' 加Shared才能直接通过类名调用,不需要实例化
        Public Shared Sub KillAProcess(processName As String)
            ' 你的实现逻辑
            For Each proc In System.Diagnostics.Process.GetProcessesByName(processName)
                proc.Kill()
            Next
        End Sub
    End Class
End Namespace

如果不使用Shared,你需要先实例化类再调用方法:

' WinForms项目中的调用代码
Dim processTool As New MFGSystems.Common.Resources.ProcessTools()
processTool.KillAProcess("Explorer")

2. 确认项目引用的正确性

  • 确保WinForms项目引用的是最新编译的DLL文件,如果是同一个解决方案,直接引用DLL项目而非手动添加文件引用,避免引用旧版本
  • 检查DLL和WinForms项目的目标框架版本是否兼容,比如DLL是.NET Framework 4.8,WinForms项目不能用.NET 6(除非是兼容模式),框架不匹配会导致无法正确识别类和方法

3. 核对命名空间与类名拼写

确认DLL中的命名空间确实是MFGSystems.Common.Resources,类名和方法名没有拼写错误——有时候大小写或者细微的拼写差异会导致找不到方法

内容的提问来源于stack exchange,提问作者Daniel Santos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 04:47:01