Win32: включение визуальных стилей в MinGW без манифеста

#winapi #mingw

#winapi #mingw

Вопрос:

У меня есть проект Win32, который я компилирую с помощью MinGW. Я хотел бы включить визуальные стили в этой программе, не требуя внешнего манифеста.

В MSVC это, по-видимому, можно сделать с помощью следующей прагмы:

 #pragma comment(linker,""/manifestdependency:type='win32' 
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' 
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"")
 

Однако GCC (MinGW) не поддерживает такую прагму. Есть ли у меня способ эмулировать поведение этой прагмы с помощью MinGW?

Комментарии:

1. Прагма MSVC просто приводит к добавлению компоновщиком ресурса манифеста. Если вы не используете манифест, вам потребуется использовать связывание во время выполнения и контекст активации для загрузки библиотеки dll comctl32. Я даже не знаю, возможно ли это. Это большая работа, даже если это так. Используйте уже манифест.

2. Просто напишите .rc файл, который ссылается на .manifest файл, затем скомпилируйте .rc файл в .res файл с помощью любого нужного вам компилятора ресурсов, а затем попросите компоновщика MinGW связать этот .res файл с вашим конечным исполняемым файлом вместе со скомпилированными объектными файлами вашего исходного кода. Это в основном то, что #pragma делается за кулисами, просто без использования фактических .rc .manifest файлов or.

Ответ №1:

Что ж, похоже, что написание ресурса / манифеста — единственный путь вперед, поэтому я должен действовать таким образом.