可视组件库(vcl)和WinApi之间的差异

时间:2010-02-09 19:23:26

标签: delphi user-interface winapi

在Delphi和WinApi函数中使用vcl组件创建gui应用程序之间是否有任何区别。

6 个答案:

答案 0 :(得分:8)

@Azad我认为有两个很大的区别:第一个是VCL的易用性,它使您能够在窗体(窗口)上拖放控件,更改其属性并分配事件,从而提高您的工作效率GUI的发展。

另一个很大的区别是最终应用程序的大小,如果您仅使用WINAPI调用创建应用程序,则最终应用程序将小于使用VCL。

我建议您看一下项目KOL(KOL - Key Objects Library是一组使用Delphi但没有VCL(或Free Pascal)开发功能(但很小)的32位Windows GUI应用程序的对象。免费发布,附带源代码。)。

alt text http://kolmck.net/KOLLogo5.gif

答案 1 :(得分:7)

VCL是一个完整的框架,包含Windows API,使开发人员免受血腥细节的影响,使得开发Delphi应用程序变得更加容易。
与Windows版本更改相比,您在生产力和兼容性方面获得了巨大的成就......

答案 2 :(得分:7)

几乎所有真实的Delphi应用程序都使用VCL,并且还可以对Win32 API进行OCCASIONAL直接调用。无论如何,VCL框架最终会调用Win32调用。所以,你几乎总是使用两者。

那个提到KOL的人正在建议另一个“中间”层,因为直接进行是极度痛苦的。

Microsoft(按历史顺序),MFC和ATL for C ++,以及.NET for C#/ VB.net语言,作为“框架”层,位于应用程序和原始Win32 API之间,用于MS Visual工作室产品。

编写比Notepad.exe更复杂的东西直接使用“金属”(Win32 API raw)的人很少见。因此,它更难,学习需要更长时间,并且做所有事情。最后,它并没有明显更快或更好。如果你真的需要小(就像你正在写病毒),也许你可能想要Win32原生。

答案 3 :(得分:5)

嗯,当然,VCL需要一个Borland编译器。 Win32 API适用于任何语言。使用GUI类库(如VCL)的目的是使创建支持GUI的程序更容易。仅使用Win32这样做是非常有害的。

答案 4 :(得分:4)

时间,时间,然后更多的时间。

答案 5 :(得分:2)

您使用WinAPI执行VCL无法“执行”的操作。