2009-07-20 6 views
2

Кто-нибудь знает библиотеку C++ для доступа к различным API-интерфейсам операционной системы?Есть ли библиотека обертки API операционной системы для C++?

Я думаю об обертке для доступа к конкретным функциям ОС. Что-то вроде:

osAPI.MessageBox(); // вызов MessageBox() в Win32, что эквивалентно в Mac OS Linux и т.д. ...

Так как я думаю, что это трудно понять это для различных операционных систем на данный момент было бы также хорошо, чтобы иметь хороший C++ обертка класс для WinAPI.

+0

Функции, которые вы описываете, не являются уровнем ОС (который обрабатывает драйверы устройств и т. Д.). Это оконный (или дисплейный) слой, который является слоем над Core OS. –

+0

Я только выбрал MessageBox, потому что это пришло мне в голову. В общем, я не думаю (только) о функциях графического интерфейса, я думаю о типичных функциях OS API, таких как управление процессами, сетевой материал и т. Д.(не-GUI-материал в первой строке) – Inno

ответ

1

подталкивания предлагает библиотеки для сетей (Boost.Asio), темы (Boost.Thread), время, дата, файловая система обхода, общая память, память отображенных файлов и т.д.

ACE также абстракции для сетей, потоки, время, файловая система, общая память и т. д.

AFAIK, также нет абстракций GUI или абстракций БД.

Другие упомянули Qt, wxWidgets и т. Д.

8

Я думаю, что вы ищете Trolltech's Qt C++ framework.

Это кроссплатформенная библиотека C++ для графического интерфейса пользователя и практически все остальное перекрестная платформа.

И по последней версии он может использоваться для коммерческого использования.

+0

Ли QT также обрабатывает не-GUI OS API, например, получение списка запущенных процессов? – Inno

+0

Очевидно, что получение списка процессов не покрывается QT. (http://lists.trolltech.com/qt-interest/2006-10/msg01222.html) Возможно, они добавили решение в более новую версию? Я не могу найти способ получить его в wxWidgets. – Kieveli

+0

Вы всегда можете вернуться на #ifdef _WIN32 при необходимости –

1

MFC вроде делает это на Windows, но не самый простой в использовании. Для кросс-платформенной библиотеки C++ взгляните на QT.. Он больше всего известен как набор инструментов GUI, но содержит портативные API-интерфейсы для поддержки многих системных сервисов, таких как потоки, подключение к базам данных и ввода-вывода.

3

wxWidgets очень рекомендуется несколькими друзьями, которые его использовали.

0

Еще одна кросс-платформенная библиотека C++ - это Mozilla's XPCOM. Это кросс-платформенная библиотека, используемая Firefox и ряд других проектов.

0

QT от Nokia будет вашим лучшим выбором, если вам нужен широкий спектр кросс-платформенных функций. Недостатком является то, что вам нужно изучить свой механизм Signal/Slot, вам нужно использовать собственный инструмент qmake, и он не слишком дружелюбен к STL (вам нужно научиться использовать все контейнеры QT).

Если вы ищете что-то более простое для разработки графического интерфейса, то wxWidgets будет намного лучшим выбором.

+0

он отлично работает с STL. все контейнеры Qt имеют итераторы стиля STL. Кроме того, каждый контейнер Qt имеет/из методов для преобразования в/из контейнеров STL. –

1

Проверить Daynix DUSIX. Это модуль, который абстрагирует общие системные вызовы, предоставляя единый интерфейс для приложений пользовательского пространства Linux и Windows и модулей ядра.

См. here и here.

Смежные вопросы