c#中,窗口程序的入口点函数也是 Main()吗?c++中是winmain()呀?
---------------------------------------------
今天学着做窗口程序,才发现c#中,窗口程序与控制台程序一样,入口函数都是 Main(),
可以以前看到c++中,入口应该是winmain()吧。难道差别这么大吗?我不理解的是,c#的代码,真正执行时,也要转成winmain()吧。毕竟c#是托管执行的呀。
我的理解对吗?
---------------------------------------------
今天学着做窗口程序,才发现c#中,窗口程序与控制台程序一样,入口函数都是 Main(),
可以以前看到c++中,入口应该是winmain()吧。难道差别这么大吗?我不理解的是,c#的代码,真正执行时,也要转成winmain()吧。毕竟c#是托管执行的呀。
我的理解对吗?
我认为不会转换成winMain();
Main()函数必须封装在类或结构里来提供可执行程序的入口点
.method private hidebysig static void Main() cil managed
在C++下,Link /ENTRY 可以指定入口点,
在ilasm下,用.entrypoint来指定入口点,比如下面的il代码中的入口点就是MyFunction。
(把下面代码存为my.il,然后用ilasm /exe my.il,即可运行my.exe).assembly My{}
.module My.exe.class private auto ansi beforefieldinit Program extends [mscorlib]System.Object
{
.method private hidebysig static void MyFunction() cil managed
{
.entrypoint
ldstr "hello entry point"
call void [mscorlib]System.Console::WriteLine(string)
ret
} .method public hidebysig specialname rtspecialname
instance void .ctor() cil managed
{
ldarg.0
call instance void [mscorlib]System.Object::.ctor()
ret
}
}