c#中,窗口程序的入口点函数也是 Main()吗?c++中是winmain()呀?
---------------------------------------------
今天学着做窗口程序,才发现c#中,窗口程序与控制台程序一样,入口函数都是 Main(),
可以以前看到c++中,入口应该是winmain()吧。难道差别这么大吗?我不理解的是,c#的代码,真正执行时,也要转成winmain()吧。毕竟c#是托管执行的呀。
我的理解对吗?

解决方案 »

  1.   

    所有程序的入口都是main() 函数  只是在不同的语言中 main() 函数得名称不一样罢了···
      

  2.   

    c++不是C#。何必纠集在这个点呢。
    我认为不会转换成winMain();
      

  3.   

    Main()函数在C#里非常特殊,它是编译器规定的所有可执行程序的入口点。
    Main()函数必须封装在类或结构里来提供可执行程序的入口点
      

  4.   

    应该不会转为winmain吧Main对应IL是:
    .method private hidebysig static void  Main() cil managed
      

  5.   

    程序的入口可以是任何名字,只要编译器能知道它的名字,C#使用了Main函数。
    在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
      }
    }