
正文
vb.net程序加载过程 vbnet加载dll
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
详细阐述 vb.net 中main
每个 Visual Basic 应用程序均必须包含一个称为VB.NET Main过程。该过程为应用程序vb.net程序加载过程的起始点并为应用程序提供总体控制。.NET Framework 在已加载应用程序并准备将控制传递给它时vb.net程序加载过程,将调用 Main 过程。除非您要创建 Windows 窗体应用程序vb.net程序加载过程,否则就必须为自运行的应用程序编写 Main 过程。
Main 中包含首先运行的代码。在 Main 中,可以确定在程序启动时首先加载的窗体,确定系统上是否已在运行您的应用程序副本,为应用程序建立一组变量,或者打开应用程序需要的数据库。
VB.NET Main过程的要求
独立运行的文件(扩展名通常为 .exe)必须包含 Main 过程。库(例如,扩展名为 .dll)不独立运行,因而不需要 Main 过程。可以创建的不同类型的项目的要求如下:
控制台应用程序可以独立运行,而且您必须提供至少一个 Main 过程。
Windows 窗体应用程序可以独立运行。但是,Visual Basic 编译器会在此类应用程序中自动生成一个 Main 过程,因而您不需要编写此过程。
类库不需要 Main 过程。这些类库包括 Windows 控件库和 Web 控件库。作为类库部署 Web 应用程序。
声明VB.NET Main过程
有四种方法可以声明 Main 过程。它可以使用参数或不使用参数,可以返回值或不返回值。
注意
如果在类中声明 Main 过程,则必须使用 Shared 关键字。在模块中,Main 不必是 Shared。
最简单的方法是声明一个不使用参数或不返回值的 Sub 过程。
Module mainModule
Sub Main()
MsgBox("The Main procedure
is starting the application.")
' Insert call to appropriate
starting place in your code.
MsgBox("The application
is terminating.")
End Sub
End ModuleMain
还可以返回一个 Integer 值,操作系统将其作为程序的退出代码。其他程序可以通过检查 Windows ERRORLEVEL 值来测试该代码。若要返回退出代码,必须将VB.NET Main过程声明为 Function 过程而不是 Sub 过程。
Module mainModule
Function Main() As Integer
MsgBox("The Main procedure
is starting the application.")
Dim returnValue As Integer = 0
' Insert call to appropriate
starting place in your code.
' On return, assign appropriate
value to returnValue.
' 0 usually means successful
completion.
MsgBox("The application is
terminating with error level " _
CStr(returnValue) ".")
Return returnValue
End Function
End ModuleMain
还可以采用一个 String 数组作为参数。数组中的每个字符串均包含一个用于调用程序的命令行参数。您可以根据它们的值采取不同的操作。
Module mainModule
Function Main(ByVal cmdArgs()
As String) As Integer
MsgBox("The Main procedure is
starting the application.")
Dim returnValue As Integer = 0
' See if there are any arguments.
If cmdArgs.Length 0 Then
For argNum As Integer = 0 To
UBound(cmdArgs, 1)
' Insert code to examine cmdArgs
(argNum) and take
' appropriate action based on its value.
Next argNum
End If
' Insert call to appropriate starting
place in your code.
' On return, assign appropriate
value to returnValue.
' 0 usually means successful completion.
MsgBox("The application is
terminating with error level " _
CStr(returnValue) ".")
Return returnValue
End Function
End Module
可以声明VB.NET Main过程来检查命令行参数而不返回退出代码,如下所示。
Module mainModule
Sub Main(ByVal cmdArgs() As String)
MsgBox("The Main procedure is
starting the application.")
Dim returnValue As Integer = 0
' See if there are any arguments.
If cmdArgs.Length 0 Then
For argNum As Integer = 0 To
UBound(cmdArgs, 1)
' Insert code to examine cmdArgs
(argNum) and take
' appropriate action based on its value.
Next argNum
End If
' Insert call to appropriate
starting place in your code.
MsgBox("The application is
terminating."
End Sub
End Module
相关问答
Q1: 开发一个VB.NET程序,要经过几个步骤
不好说,我就说下我的想法!有数据库的!
1:先想清楚,(包括先设想下页面,涉及的功能等)
2:编写文档
3:设计数据库,编写代码
4:
调试程序
,生成,查错
5:部署安装。
Q2: 您好,vb.net 在控件加载过程中,有一个窗体挡住,类似进度条,请问如何实现
分析:
添加一个新窗体,设置属性.TopMost=True ,窗体显示在前面。
设置一下透明度增加效果。如果使用窗体闪烁,可以添加时间控件,
设置时间段变更窗体透明度来达到你想要的效果。
Q3: vb.net编程,如何使用 appdomain 实现某进程DLL动态加载和卸载?
由于你要求的是能够动态的加载与卸载,所以这里选用了appdomain的load方法来加载一个程序集(同样的,卸载的时候调用appdomain的静态方法Unload即可).
另外由于,在appdomain.load的时候remoting会试图将程序集序列化到defaultdomain中去,这会产生问题,通常以一个"FileNotFoundException"结束,因此采用了一种折中的办法.
思路如下:
1.建立一个新的程序集,里面包含一个轻量的类型,这个类型只包含一个用来加载程序集的公共方法;
2.在你的主程序里面,用appdomain.load来加载上一步的程序集,接着实例化上一步的轻量的类型;
3.而后就可以像操作通常的对象一样,调用它上面的方法来加载你想要的程序集了;
源代码已经打包发给你了,
你看看吧~
如果有问题,再找我哈
Q4: VB.NET先加载模块再启动窗体
确实如xjnzhidao 讲的,很可能你没实例化,模块中的代码你不调用也是不执行的,尤其是写到模块里面的函数或者过程。一个很简单的办法,就是在你模块代码中声明数据库库读取的地方设置一个断点,然后调试程序(把窗体调用该代码部分先注释掉),看看是否执行到了断点,如果没执行就说明根本没执行模块
vb.net程序加载过程的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vbnet加载dll、vb.net程序加载过程的信息别忘了在本站进行查找喔。







