- 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是编译器做了一个魔法处理直接转到工程的开头了。其他方面都做一样的处理! |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |