Различия между библиотекой визуальных компонентов (vcl) и WinApi - PullRequest
3 голосов
/ 09 февраля 2010

Есть ли разница между использованием компонентов vcl в функциях Delphi и WinApi для создания приложения с графическим интерфейсом.

Ответы [ 6 ]

8 голосов
/ 09 февраля 2010

@ Azad Я думаю, что есть два больших различия: первое - это простота использования VCL, который позволяет перетаскивать элементы управления на форму (окно), изменять его свойства и назначать события, обеспечивая высокую производительность в разработка графического интерфейса.

Другая большая разница заключается в размере конечного приложения. Если вы создаете приложение, используя только вызовы WINAPI, ваше конечное приложение будет меньше, чем при использовании VCL.

Я рекомендую вам посмотреть проект KOL (KOL - библиотека ключевых объектов - это набор объектов для разработки мощных (но небольших) 32-битных приложений с графическим интерфейсом Windows с использованием Delphi, но без VCL (или Free Pascal). Распространяется бесплатно, с исходным кодом.).

alt text
(источник: kolmck.net )

7 голосов
/ 10 февраля 2010

Почти все реальные приложения Delphi используют VCL, а также совершают случайные прямые вызовы Win32 API. Каркас VCL вызывает Win32, в конце концов, в любом случае. Таким образом, вы почти всегда будете использовать оба.

Парень, который упомянул KOL, предлагает еще один "средний" слой, потому что идти прямо очень болезненно.

Microsoft имеет (в историческом порядке) MFC и ATL для C ++ и .NET для языка C # / VB.net в качестве «каркасных» уровней, которые существуют между вашим приложением и сырым Win32 API, для их MS Visual Студия товаров.

Люди, которые пишут что-то более сложное, чем Notepad.exe, обращаются прямо к «металлу» (Win32 API raw) редко. Так что это сложнее, это займет больше времени, чтобы учиться и делать все. И в конце концов, это не значительно быстрее или лучше. Если вам действительно нужно быть маленьким (например, вы пишете вирус), возможно, вы захотите использовать Win32 native.

7 голосов
/ 09 февраля 2010

VCL - это полная структура, обертывающая Windows API и изолирующая разработчика от мрачных деталей, значительно упрощающая разработку приложений Delphi.
Вы получаете большую производительность и совместимость по сравнению с изменениями версий Windows ...

5 голосов
/ 09 февраля 2010

Ну, конечно, VCL требует компилятора Borland. Win32 API работает на любом языке. Смысл использования библиотеки классов GUI, такой как VCL, состоит в том, чтобы упростить создание программы с поддержкой GUI. Делать так, используя только Win32, довольно сложно.

4 голосов
/ 09 февраля 2010

время, время, а потом еще больше времени.

2 голосов
/ 10 февраля 2010

Вы используете WinAPI для действий, которые VCL не может «сделать».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...