| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Не подключается библитотека |
| Автор: IIGGOORR 26.4.2007, 13:33 |
| Извините за беспокойство. У меня такая проблема - Я создаю простое MFC приложение, мне надо загружать в нём bmp картинки и обрабатывать их. Мне нужны методы класса Image, соответственно они содержатся в библиотеках gdiplus.dll, gdiplus.lib. Когда я подключаю с помощью #include <...> заголовочные файлы из класса Image, например, Gdiplusheaders.h, gdiplus.h, то компилятор выдаёт много ошибок. Когда я пишу стандартный конструктор класса Image компилятор сообщает, что такого класса нет. Помогите пожалуйста, как подключить библиотеки класса Image? |
| Автор: korbian 26.4.2007, 14:00 |
| Если я все правильно понял, то #pragma comment( lib, "gdiplus.lib" ) или (для Visual Studio) project->properties->linker->input->additional dependencies: gdiplus.lib |
| Автор: IIGGOORR 26.4.2007, 19:53 | ||
Спасибо за ответ. Не помогло, ошибки следующие:
Error 1 error C2653: 'Bitmap' : is not a class or namespace name Error 2 error C2065: 'pBitmap' : undeclared identifier Error 3 error C3861: 'Bitmap': identifier not found Error 4 error C2061: syntax error : identifier '{ctor}' |
| Автор: Earnest 26.4.2007, 20:21 |
| Очевидно, компилятор не находит объявлений. Т.е. не подключен соответствующий хедер. Какой, сказать не могу, т.к. GDI+ не использую, но, если не найдешь в документации, можно, на худой конец, файловым поиском найти, где это все определяется. И еще, обрати внимание на пространство имен, возможно просто некорректно его указываешь. |
| Автор: IIGGOORR 26.4.2007, 20:52 | ||||
Earnest спасибо за советы.
В том то и дело, когда подключаю соответствующие хедеры, компилятор выдаёт ошибку в каждой строчке этого хедера.
А что значит некорректно указывать пространство времён и где оно вообще указывается? Благодарен за помощь. |
| Автор: Earnest 26.4.2007, 21:16 | ||||||||||
Какой хедер и какие ошибки? Лучше всего, конечно, найти пример использования GDI+ (причем любого) и списать слова. Может, там какой-то порядок подключаемых хедоров нужен.
Ну например, у тебя (т.е. в стандартном хедере), есть такое объявление:
Ты подключаешь это хедер и пытаешься использовать символ YYY, на что компилятор ругается, т.к. ты должен писать XXX::YYY. Кстати, твой код:
Но, поскольку я умнее компилятора
Только нужно писать не просто Bitmap, XXX::Bitmap, где XXX - то пространство имен, где класс Bitmap объявлен. И наконец: что-то про GDI+ было на форуме. Поищи, может найдешь примеры. И книжку какую-нибудь про С++ прочитай, азы хотя бы... |
| Автор: Greeen 27.4.2007, 09:12 | ||
Вот тебе листинг файлега, подключаешь его инклудом и юзай GDI+ без проблем
|
| Автор: IIGGOORR 27.4.2007, 14:17 | ||||||||||
| Спасибо за дельные советы. 2 Earnest коструктор:
взял из MSDN.
Хедер: Gdiplusheaders.h, ошибки исчезли с подключенным файлом от Greeen'a 2 Greeen Ваш файл подключил. Первые две ошибки исчезли, а именно:
т. е., я как понимаю, библиотека всё таки подключилась
Видимо я всё-таки неправильно делаю коструктор, хотя в MSDN"е он присутствует, либо в опциях линковщика, что-то не то ставлю:
Какие опции вообще влияют на подключение библиотек? Заранее спасибо за ответы. |
| Автор: Greeen 27.4.2007, 14:54 | ||||
| Опции линковщика и компилятора тут не при чем. Давай приводи свой код потому, что ругается на то, что нет объявления pBitmap. Может ты просто забыл чего то. Короче код в студию. Только что заметил. Вот этот твой код
|
| Автор: IIGGOORR 27.4.2007, 20:51 | ||||
Greeen, Earnest, Огромное спасибо за вашу помощь. Действительно мой конструктор не работал, ваш - работает, но честное слово
не я придумал, как в MSDN"е написано, так и писал.
|
| Автор: Earnest 28.4.2007, 19:51 |
Из приведенной цитаты вовсе не следует такая запись как ты сочинил, а следует ровно то, что мы с грином написали. Я уже вроде говорили и еще раз повторю: изучай матчасть, т.е. C++. В документации предполагается, что ты знаешь, как надо вызывать конструктор. |