D语言值得关注
来源:互联网 发布:防网络诈骗作文800字 编辑:程序博客网 时间:2024/06/03 01:26
今天偶尔关注了一下D语言。一直以来都在拿C++与C#,Java做比较,后两种对于程序员来说无疑是更顺手的,但
是效率上C++是最强的。D语言虽然刚刚萌芽,但是只看了他的简单介绍之后心里就很激动,“Great, just what I need
”。
介绍D语言的一个中文的Blog:http://blog.csdn.net/uframer/
D语言环境配置教程:http://www.cppblog.com/cpunion/archive/2005/11/02/892.html
D语言官方网站:http://www.digitalmars.com/d/index.html
D语言开源网站:http://www.dsource.org
D语言作者的网站:http://www.walterbright.com/
另外尝试了一下D语言win32编程,下面是一个最小的程序--创建一个窗口:
import std.c.windows.windows;
extern (Windows) BOOL DestroyWindow(HWND hWnd);
enum { PM_REMOVE = 0x0001 }
const LPSTR IDC_ARROW = cast(LPSTR)32512;
extern (C) void *memset(void *dest, int c, size_t count);
extern (Windows) BOOL FreeLibrary(HMODULE hModule);
HWND createWindow()
{
HINSTANCE moduleHandle = GetModuleHandleA(null);
assert(moduleHandle);
WNDCLASS wc;
wc.lpszClassName = "DWndClass";
wc.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = &windowProc;
wc.hInstance = moduleHandle;
wc.hIcon = LoadIconA(cast(HINSTANCE)null, IDI_APPLICATION);
wc.hCursor = LoadCursorA(cast(HINSTANCE)null, IDC_ARROW);
wc.hbrBackground = cast(HBRUSH) (COLOR_WINDOW + 1);
wc.lpszMenuName = null;
wc.cbClsExtra = wc.cbWndExtra = 0;
assert(RegisterClassA(&wc));
RECT rect;
rect.left = 0; rect.top = 0; rect.right = 640; rect.bottom = 480;
AdjustWindowRect(&rect, WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU | WS_VISIBLE, FALSE);
HWND result = CreateWindowA("DWndClass", "Just a window",
WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU | WS_VISIBLE,
CW_USEDEFAULT, CW_USEDEFAULT,
rect.right - rect.left, rect.bottom - rect.top, HWND_DESKTOP,
cast(HMENU)null, moduleHandle, null);
assert(result);
return result;
}
extern (Windows) int windowProc(HWND hWnd, uint uMsg, WPARAM wParam, LPARAM lParam)
{
if (uMsg == WM_CLOSE || uMsg == WM_DESTROY)
{
PostQuitMessage(0);
return 0;
}
return DefWindowProcA(hWnd, uMsg, wParam, lParam);
}
bit doEvents(HWND wnd)
{
MSG msg;
while (PeekMessageA(&msg, null, 0, 0, PM_REMOVE))
{
if (WM_QUIT == msg.message) return false;
TranslateMessage(&msg);
DispatchMessageA(&msg);
}
Sleep(16);
return true;
}
int main()
{
HWND wnd = createWindow();
while (true)
{
if (!doEvents(wnd))
break;
}
DestroyWindow(wnd);
return 0;
}
是效率上C++是最强的。D语言虽然刚刚萌芽,但是只看了他的简单介绍之后心里就很激动,“Great, just what I need
”。
介绍D语言的一个中文的Blog:http://blog.csdn.net/uframer/
D语言环境配置教程:http://www.cppblog.com/cpunion/archive/2005/11/02/892.html
D语言官方网站:http://www.digitalmars.com/d/index.html
D语言开源网站:http://www.dsource.org
D语言作者的网站:http://www.walterbright.com/
另外尝试了一下D语言win32编程,下面是一个最小的程序--创建一个窗口:
import std.c.windows.windows;
extern (Windows) BOOL DestroyWindow(HWND hWnd);
enum { PM_REMOVE = 0x0001 }
const LPSTR IDC_ARROW = cast(LPSTR)32512;
extern (C) void *memset(void *dest, int c, size_t count);
extern (Windows) BOOL FreeLibrary(HMODULE hModule);
HWND createWindow()
{
HINSTANCE moduleHandle = GetModuleHandleA(null);
assert(moduleHandle);
WNDCLASS wc;
wc.lpszClassName = "DWndClass";
wc.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = &windowProc;
wc.hInstance = moduleHandle;
wc.hIcon = LoadIconA(cast(HINSTANCE)null, IDI_APPLICATION);
wc.hCursor = LoadCursorA(cast(HINSTANCE)null, IDC_ARROW);
wc.hbrBackground = cast(HBRUSH) (COLOR_WINDOW + 1);
wc.lpszMenuName = null;
wc.cbClsExtra = wc.cbWndExtra = 0;
assert(RegisterClassA(&wc));
RECT rect;
rect.left = 0; rect.top = 0; rect.right = 640; rect.bottom = 480;
AdjustWindowRect(&rect, WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU | WS_VISIBLE, FALSE);
HWND result = CreateWindowA("DWndClass", "Just a window",
WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU | WS_VISIBLE,
CW_USEDEFAULT, CW_USEDEFAULT,
rect.right - rect.left, rect.bottom - rect.top, HWND_DESKTOP,
cast(HMENU)null, moduleHandle, null);
assert(result);
return result;
}
extern (Windows) int windowProc(HWND hWnd, uint uMsg, WPARAM wParam, LPARAM lParam)
{
if (uMsg == WM_CLOSE || uMsg == WM_DESTROY)
{
PostQuitMessage(0);
return 0;
}
return DefWindowProcA(hWnd, uMsg, wParam, lParam);
}
bit doEvents(HWND wnd)
{
MSG msg;
while (PeekMessageA(&msg, null, 0, 0, PM_REMOVE))
{
if (WM_QUIT == msg.message) return false;
TranslateMessage(&msg);
DispatchMessageA(&msg);
}
Sleep(16);
return true;
}
int main()
{
HWND wnd = createWindow();
while (true)
{
if (!doEvents(wnd))
break;
}
DestroyWindow(wnd);
return 0;
}
- D语言值得关注
- 值得关注的Lua语言
- 关注D语言
- 小众编程语言同样值得你关注
- 小众编程语言同样值得你关注
- 值得关注
- 值得关注的十个C语言开源项目
- 值得关注的10个C语言开源项目
- 2017年值得关注的编程语言和工具!
- Alfresco也值得关注
- 值得关注----NetBPM工作流
- 值得关注的博客
- 金财网张建新:两类股值得关注
- 值得关注----NetBPM工作流
- 未来更值得关注
- 值得关注的blog
- 值得关注----NetBPM工作流
- 值得关注的网站
- 与你分享五年HR招聘与面试的体会(中)
- 多层结构中自定义实体的使用
- 与你分享五年HR招聘与面试的体会(下)
- Dom4j 是最好的, Sun JAXM 和 Hibernate 都使用了Dom4j .
- UML 基础:类图
- D语言值得关注
- 实用技术网址收集
- 今天新开张
- 从现在起,开始研究NDS游戏的开发
- 如何实现网页自定义右键菜单?
- 上海!我来了!!
- 使用故障恢复控制台修复损坏后的Windows XP注册表
- AStar2006百度之星程序设计大赛决赛试题
- 什么是WAP网关?