您的位置:首页 > 产品设计 > UI/UE

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

2007-10-26 20:24 507 查看
这篇文章给大家讲述如何用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 程序。看过记得写评论。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: