看图学习用D语言编写win32 GUI程序


这篇文章给大家讲述如何用D语言写win32 GUI程序,读过的请评论。
write by DKink|棼紫
QQ:8566427

如果有还不会配置D语言编程环境的朋友请看我的前一篇文章《看图配置D语言集成开发环境》 http://blog.csdn.net/dkink/archive/2007/10/24/1841907.aspx 记得给我评论。

在D语言的老家里有这篇文章 http://www.digitalmars.com/d/windows.html 就是讲 win32 GUI 开发的。英文好的看这个,其实很简单的,我以前英文很少及格的都能看懂。

 

 

在C/C++ 中 要包含
#include <windows.h>
在D语言中换成了
import std.c.windows.windows;

在配好的Poseidon中建立如下图的工程。

 

 注意“项目路径”必须是已经存在的目录,再次强调。

在main.d里面写如下代码:

 

import std.c.windows.windows;

extern (C) void gc_init();
extern (C) void gc_term();
extern (C) void _minit();
extern (C) void _moduleCtor();
extern (C) void _moduleDtor();
extern (C) void _moduleUnitTests();

extern (Windows)
int WinMain(HINSTANCE hInstance,
 HINSTANCE hPrevInstance,
 LPSTR lpCmdLine,
 int nCmdShow)
{
    int result;

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

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

 result = myWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);

 _moduleDtor();  // call module destructors
    }

    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;
}

int myWinMain(HINSTANCE hInstance,
 HINSTANCE hPrevInstance,
 LPSTR lpCmdLine,
 int nCmdShow)
{
    /* ... insert user code here ... */
 MessageBoxA(null, "HelloWorld", "MSG",MB_OK | MB_ICONEXCLAMATION);
 //就这行是我写的,其他都是英文说明上的
 return 1;
}

点击“生成并运行”,结果出来了。晕,怎么还有console控制台在?

进“项目属性”的编译器 的 编译器选项 ,“不显示控制台窗口”那项勾上。完成~

 


 

英文文章上说了下面这段文字

A .def (Module Definition File) with at least the following two lines in it:
EXETYPE NT
SUBSYSTEM WINDOWS
Without those, Win32 will open a text console window whenever the application is run.

意思是必须有个 *.def 文件里面写了
EXETYPE NT
SUBSYSTEM WINDOWS
这两行然后编译的时候加上就能去掉控制台。

我们用这种方法,首先在“项目属性”的“编译器选项”里面把“不显示控制台窗口”前面的勾去掉。

进入项目目录里建一个叫 main.def 文件,把那两行 写进去记得用另存为 存成UTF8的纯文本,记得是UTF8。如果编译的时候总是出错,就把D:/dmd/samples/d/winsamp.def 复制过来改名成main.def。

回到“项目属性”的“编译器选项里”在额外选项里面填上 main.def 如下图:

还接着 “生成并执行” 完成,看到输出 里面显示的东西没?那个就是控制台命令。
如果 我们 没有IDE环境的话 就要 输入 下图这样 命令 来编译程序。

 


 

下篇文章教大家写一个更复杂的Win32 GUI 程序。看过记得写评论。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号