- UID
- 49175
注册时间2008-5-1
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 奋斗 2017-4-20 22:12 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
一直都想着在Delphi中用使用纯SDK API来写一些东西,但是一直没有做过或者做的非常少,看了版主的Windows API一日一练的相关帖子。于是决定在我的能力之内,将他的相关内容用Delphi来实现一下。目的也是告诉那些只用Delphi常规开发的人,原来Delphi还可以这么用,也告诉纠正那些认为Delphi只用来写数据库程序的误解。
先来看看第一个应用程序,这里参考Windows API一日一练 第一个应用程序。在此之前,我们先了解一下纯WIn SDK编程的方式,一般用过C的人,都知道C的入口函数为main(),这里有一个入口函数,而Win32编程中,也有一个入口,这个入口函数为WinMain。可是这个入口函数,我们在Delphi中看不到。如果有人看过Delphi的dpr工程文件中的代码就会发现,Delphi的入口实现为:- begin
- Application.Initialize;
- Application.CreateForm(TForm4, Form4);
- Application.Run;
- end.
复制代码 根本没见到所谓的WinMain函数,不过,实际上这个函数是存在的,只是Delphi对他做了智能处理,将其隐藏在Delphi编译器的实现之中,所以我们看不到这个东西,但是我们不能说他不存在。Delphi会进入winmain入口,然后转到工程的begin..end之间来执行代码。所以,咱就可以在这里将工程文件的begin这里作为入口。
那么,对应Windows API一日一练 第一个应用程序这个帖子,我们的代码就可以很简单的实现为:
- program Project1;
- uses
- Windows;
- begin
- MessageBox(GetDesktopWindow,'第一个应用程序','例子',64)
- end.
复制代码 怎么样,这个代码很简单吧。
可见,基本上来说,这个代码与VC实现起来的差别不大,唯一的一个差别就是在入口上,VC的是转为了_twinmain,Delphi是编译器做了一个魔法处理直接转到工程的开头了。其他方面都做一样的处理! |
评分
-
查看全部评分
|