`
smithfox
  • 浏览: 54026 次
  • 性别: Icon_minigender_1
  • 来自: hf
社区版块
存档分类
最新评论

D语言GUI编程-main与WinMain

阅读更多
前一篇Blog,试图做一个只有messagebox的最简单的GUI程序。
入口有两种方式:
main与WinMain。
从dmd自带sample中的winsamp.d 例子中是用的WinMain函数。而使用dfl和dwt这些库的入口方式都是main。
这两种之间有什么不同吗?
我到D forum发贴问过,有高手回答了。
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=52574

大概意思是:
其实D语言在启动入口点为main的时候,D在调用main之前会进行一些初始化(其中包括垃圾回收启动),并且在main函数后,再调用系统的销毁动作(其中包括垃圾回收的结束)。所以D语言推荐入口为main函数。

如果是WinMain入口,系统初始化和销毁都需要写显示的代码,正如winsamp.d

    gc_init();            // initialize garbage collector
    _minit();            // initialize module constructor table

    try
    {
    _moduleCtor();        // call module constructors
    _moduleUnitTests();    // run unit tests (optional)

    result = doit();    // insert user code here
    }

    catch (Object o)        // catch any uncaught exceptions
    {
    MessageBoxA(null, cast(char *)o.toString(), "Error",
            MB_OK | MB_ICONEXCLAMATION);
    result = 0;        // failed
    }

    gc_term();            // run finalizers; terminate garbage collector
    return result;


还有上次的
Symbol Undefined __acrtused" 问题,Walter Bright,给了一个链接
 


http://www.digitalmars.com/ctg/acrtused.html
分享到:
评论
2 楼 highwing 2007-04-26  
刚刚还在论坛问起main和winmain的问题
1 楼 yayv 2007-04-26  
恩,这main的调用在phobos库的源代码中可以找到。
在 dmd\src\phobos\internal\dmain2.d 中

相关推荐

    HGE_系列教材(1-9)

    <5> GUI:强大而灵活的GUI 管理,支持动画式的GUI <6> 矢量(Vectors),对于2D 矢量的完全支持 3)Authoring Tools 层 <1> 资源的打包(pack):HGE 使用ZIP 格式的资源包,你可以使用任何的打包工 具,甚至还可以...

    Visual C++ 2005入门经典--源代码及课后练习答案

     本书系编程语言先驱者Ivor Horton的经典之作,是学习C++编程最畅销的图书品种之一,不仅涵盖了Visual C++ .NET编程知识,还全面介绍了标准C++语言和.NET C++/CLI。本书延续了Ivor Horton讲解编程语言的独特方法,...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

     李文娟,中国石油大学(华东)硕士,现供职于国家行政学院,工作后一直从事软件开发和软件项目管理工作,对计算机语言、计算机体系结构、操作系统都非常熟悉,尤其是精通C和C++编程技术. 目录 封面 -19 封底 -18 扉页...

    Visual C++ 2005入门经典.part08.rar (整理并添加所有书签)

    11.2.1 WinMain()函数 11.2.2消息处理函数 11.2.3简单的Windows程序 11.3 Windows程序的组织 11.4 MFC 11.4.1 MFC标记法 11.4.2 MFC程序的组织方式 11.5使用Windows Forms 11.6小结 第12章 使用MFC编写Windows程序 ...

    Visual C++ 2005入门经典.part04.rar (整理并添加所有书签)

    11.2.1 WinMain()函数 11.2.2消息处理函数 11.2.3简单的Windows程序 11.3 Windows程序的组织 11.4 MFC 11.4.1 MFC标记法 11.4.2 MFC程序的组织方式 11.5使用Windows Forms 11.6小结 第12章 使用MFC编写Windows程序 ...

    Visual C++ 2005入门经典.part07.rar (整理并添加所有书签)

    11.2.1 WinMain()函数 11.2.2消息处理函数 11.2.3简单的Windows程序 11.3 Windows程序的组织 11.4 MFC 11.4.1 MFC标记法 11.4.2 MFC程序的组织方式 11.5使用Windows Forms 11.6小结 第12章 使用MFC编写Windows程序 ...

    Visual C++ 2005入门经典.part09.rar (整理并添加所有书签)

    11.2.1 WinMain()函数 11.2.2消息处理函数 11.2.3简单的Windows程序 11.3 Windows程序的组织 11.4 MFC 11.4.1 MFC标记法 11.4.2 MFC程序的组织方式 11.5使用Windows Forms 11.6小结 第12章 使用MFC编写Windows程序 ...

    Visual C++ 2005入门经典.part05.rar (整理并添加所有书签)

    11.2.1 WinMain()函数 11.2.2消息处理函数 11.2.3简单的Windows程序 11.3 Windows程序的组织 11.4 MFC 11.4.1 MFC标记法 11.4.2 MFC程序的组织方式 11.5使用Windows Forms 11.6小结 第12章 使用MFC编写Windows程序 ...

    Visual C++ 2005入门经典.part06.rar (整理并添加所有书签)

    11.2.1 WinMain()函数 11.2.2消息处理函数 11.2.3简单的Windows程序 11.3 Windows程序的组织 11.4 MFC 11.4.1 MFC标记法 11.4.2 MFC程序的组织方式 11.5使用Windows Forms 11.6小结 第12章 使用MFC编写Windows程序 ...

    PT80-NEAT开发指南v1.1

    第三章 PT80 NEAT 编程基础 ..................................................................................................................... 17 事件驱动和消息响应机制 .................................

Global site tag (gtag.js) - Google Analytics