Какой API / SDK использовать для этого приложения Windows? - PullRequest
3 голосов
/ 13 февраля 2010

Я собираюсь создать утилиту с графическим интерфейсом, которая будет работать в операционных системах Windows.

Для запуска требуется минимальное (или нулевое!) Количество дополнительных библиотек, файлов или библиотек DLL, поскольку оно будет выполнено из установщика. Из-за этого я не хочу использовать .NET, потому что пользователю потребуется установить .NET Framework. Сегодня я знаю, что большая часть установленной системы Windows поставляется с .NET Framework, но в моем случае я не уверен.

Утилита будет ...

  • отправить некоторые данные на веб-сайт и разобрать возвращаемые данные,
  • собрать некоторую информацию об оборудовании, такую ​​как MAC-адрес, Тип и марка процессора, последовательный жесткий диск номер

Я полагаю, что для всех вышеперечисленных можно было бы использовать родной Win32 API, но вместо стычки с Win32 я бы предпочел использовать более удобный для разработчиков API или SDK.

Заранее спасибо.

Ответы [ 8 ]

6 голосов
/ 13 февраля 2010

Win32 API - единственный способ, и, конечно, есть стандартный API - для отправки данных через Интернет вы можете использовать WinInet .lib / dll, для получения информации о MAC вы можете использовать GetAdaptersInfo с использованием Iphlpapi.lib / dll, (здесь ссылка о том, как его использовать) для серийного номера жесткого диска, который вы можете использовать GetVolumeInformation с помощью kernel32.lib / длл. Для идентификатора процессора вы можете посмотреть GetSystemInfomation

Редактировать: Есть код на C ++, но вы можете легко получить оболочку из этого сайта К сожалению, с WinAPI это не просто, нет такой вещи, как RAD с WinAPI, но то, что вы выгода от этого - легкий код вместо того, чтобы полагаться на SDK, фреймворки и перетаскивать глючные библиотеки DLL вместе с вашим приложением.

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

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

Вы можете статически связать большинство библиотек C ++ GUI - даже MFC. Лично я рекомендую WTL, который очень легкий и только для заголовков.

3 голосов
/ 13 февраля 2010

Если вам нужна минимальная зависимость от внешних файлов или библиотек DLL, вы можете статически скомпилировать все необходимые библиотеки DLL с помощью инструмента exe. Тогда вы могли бы использовать что-то вроде Visual C ++ для разработки такого инструмента.

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

WTL идеально подходит для такого рода приложений, и я удивлен, что больше людей не рекомендуют его. Вы также можете статически связать с CRT и эй престо - никаких зависимостей и очень маленький EXE.

1 голос
/ 13 февраля 2010

Delphi (теперь от Embarcadero) сделает эту работу, создав файл .exe без каких-либо зависимостей, и с ним будет намного проще работать, чем с сырым Win32 API.

Если вам не нравится Object Pascal, вместо этого вы можете попробовать C ++ Builder.

0 голосов
/ 13 февраля 2010

Использовать MFC и статически ссылаться на него. Не требуется устанавливать зависимости времени выполнения.

0 голосов
/ 13 февраля 2010

Для конкретных требований, которые у вас есть, я считаю, что Win32 API - единственный выход.

0 голосов
/ 13 февраля 2010

Для графического интерфейса вы можете либо создать приложение с помощью MFC (статически связанное), либо использовать диалог на основе HTML, с которым вы можете взаимодействовать с помощью COM. (Можно даже взаимодействовать с JavaScript, присутствующим на странице, отображаемой в диалоговом окне).

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