Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
-2 / 1 / 0
Регистрация: 18.07.2018
Сообщений: 84
1

Библиотека gdiplus.lib

09.03.2019, 10:35. Показов 5682. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Есть вопрос по поводу библиотеки gdi+ и использования ее в Visual Studio 2017. После подключения всех хедеров (.h) связанных с библиотекой gdi+, при создании объекта класса Bitmap, в списке методов отсутствует метод Bitmap::ApplyEffects, так же отстутсвуют все классы и методы связанные с эффектами в gdi+, такими как размытие (blur), яркость/контрастность (brightness/contrast) и так далее.
Прошу помощи, совета как решить данную проблему. Что можно сделать? Обновить библиотеку, скачать обновленный gdiplus.dll,? В интернете ответов нет. Пологаюсь только на личный опыт кого нибудь, кто сталкивался с этим до меня.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2019, 10:35
Ответы с готовыми решениями:

С++ WinAPI GDIPLUS
Всем доброго времени суток. Друзья возможно то, что я ищу уже было на этом форуме, но если честно я...

Не компилируется Gdiplus
Не компилируется. В чем проблема? Проблема не в коде, а самой библиотеке и заголовке. Не знаю что...

#pragma comment(lib, "comctl32.lib")
Для xp подключал номрально а в 7 не как че не так делаю?? vs2010 x32

При добавлении библиотеки gdiplus.h 2000+ ошибок
Windows 10 VS 2017 Я просто добавил хэдер и либ и куча ошибок по типу необъявленного...

6
Эксперт С++
3072 / 1410 / 425
Регистрация: 19.01.2009
Сообщений: 3,889
09.03.2019, 21:40 2
txtbit, данная функция поддерживается начиная с Windows Vista.
Ваш проект создан Visual Studio 2017 или вы импортировали старый?
Если 2, то поглядите опреден ли у вас где-нибудь символ препроцессора _WIN32_WINNT?
Какое у него значение?

Modifying WINVER and _WIN32_WINNT.
0
-2 / 1 / 0
Регистрация: 18.07.2018
Сообщений: 84
10.03.2019, 11:53  [ТС] 3
Проект создан на в этой Visual Studio 2017. Он не импортирован и не был написан ранее на ранних версиях windows. на компьютере установлена Windows 7 Максимальная.

Символ препроцессора определен следующей строкой:

C++
1
#include <SDKDDKVer.h>
Сам файл я приложил как вложение. Но если вкратце, то все приведенные в списке MSDN символы там определены:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//
// _WIN32_WINNT version constants
//
#define _WIN32_WINNT_NT4                    0x0400
#define _WIN32_WINNT_WIN2K                  0x0500
#define _WIN32_WINNT_WINXP                  0x0501
#define _WIN32_WINNT_WS03                   0x0502
#define _WIN32_WINNT_WIN6                   0x0600
#define _WIN32_WINNT_VISTA                  0x0600
#define _WIN32_WINNT_WS08                   0x0600
#define _WIN32_WINNT_LONGHORN               0x0600
#define _WIN32_WINNT_WIN7                   0x0601
#define _WIN32_WINNT_WIN8                   0x0602
#define _WIN32_WINNT_WINBLUE                0x0603
#define _WIN32_WINNT_WINTHRESHOLD           0x0A00 /* ABRACADABRA_THRESHOLD*/
#define _WIN32_WINNT_WIN10                  0x0A00 /* ABRACADABRA_THRESHOLD*/
Проблема пока осталась без изменений...
0
-2 / 1 / 0
Регистрация: 18.07.2018
Сообщений: 84
10.03.2019, 11:55  [ТС] 4
Вот этот файл в архиве...
Вложения
Тип файла: rar sdkddkver.rar (1.9 Кб, 41 просмотров)
0
-2 / 1 / 0
Регистрация: 18.07.2018
Сообщений: 84
10.03.2019, 18:06  [ТС] 5
schdub, просмотрел разные варианты этой проблемы, вроде все сходиться к тому, что нельзя использовать классы Эффектов нигде кроме как в Vista... Но может все таки есть варианты как это можно исправить или обойти? потому что уж больно там все удобно и быстро в плане использования эффектов, а самому писать код на Эффект Гаусса это очень долго..
0
1581 / 1504 / 251
Регистрация: 19.02.2010
Сообщений: 4,061
10.03.2019, 20:08 6
Цитата Сообщение от txtbit Посмотреть сообщение
а самому писать код на Эффект Гаусса это очень долго..
Почему?
Генерация массива значений для гауссова окна - строк 15 кода (это с проверкой, что уже было создано окно других размеров, и удалением ранее созданного).
Свёртка изображения с окном - строк 20.
0
-2 / 1 / 0
Регистрация: 18.07.2018
Сообщений: 84
11.03.2019, 12:59  [ТС] 7
Проблема решилась.
Постараюсь без воды, полностью описать как именно решился этот вопрос, может кому еще поможет это решение.

В исходном заголовочном файле проекта (у меня это stdafx.h), в его самом начале, прописываем следующие строки

C++
1
2
3
#pragma once
 
#define GDIPVER     0x0110                // Use more advanced GDI+ features
Затем, в файле stdafx.cpp прописываем следующую строку:

C++
1
#pragma comment(lib, "gdiplus.lib")
После этого, для того что б не было конфликтов в заголовочных файлах и не выскакивали ошибки о том что тот или иной объект не является однозначным, удаляем из проекта все заголовочные файлы связанные с GDI+, оставляем только gdipluseffects.h.

Так же удаляем фразу:

C++
1
using namespace Gdiplus;
так как все равно компилятор не видит откуда взято это пространство имен, но все равно проект работает (чудеса)...
После этих действий становятся доступны методы и классы связанные с Effects в GDI+ 1.1, которые доступны только в Windows Vista.
В любом случае мелкие ошибки и баги выскакивать будут, но это решить проще, чем вышеописанную проблему, по крайней мере для меня.

Если у кого есть иные способы решения, пишите сюда.

Добавлено через 11 минут
Цитата Сообщение от txtbit Посмотреть сообщение
оставляем только gdipluseffects.h.
ошибочка вышла, не gdipluseffects.h, а Gdiplus.h, и пространство имен Gdiplus, оставить все равно надо.

Gdiplus.h можно прописать в файле stdafx.h, и там же и пространство имен Gdiplus.
0
11.03.2019, 12:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2019, 12:59
Помогаю со студенческими работами здесь

Kernel32.lib не обнаружено
Буду краток, мне понадобилась библиотека Kernel32.lib, но при попытке компиляции, выдало ошибку о...

Подключение библиотеки comctl32.lib
Здравствуйте! Есть проект в котором используется эта библиотека, кидаю ее в папку с файлами...

Подключение библиотеки импорта Ws2_32.lib
Добрый вечер, при подключение библиотеки импорта Ws2_32.lib и соответственно заголовочного файла...

Скачивание файлов используя библиотеку urlmon.lib
Юзаю вот такой вот код ошибок нет он просто не работает #include &quot;stdafx.h&quot; #include &lt;iostream&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru