• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

C++ Помогите с тулбаром в Win32 Api

  • Автор темы SiNn3R
  • Дата начала
S

SiNn3R

Сейчас изучаю Win32 Api в Visual C++. Так вот, столкнулся с проблемой при создании тулбара (пример из книги К.Г.Финогенова).

1) Создаю файл с тремя изобр. кнопок (16x16) - buttons.bmp.

2) Открываю файл ресурсов .rc и вписываю:
ID_BTNS BITMAP "buttons.bmp"

3) В Resource.h добовляю это:
#define ID_BTNS 400 // Идентификатор ресурса - файла с изображением кнопок
#define ID_BUT1 3001
#define ID_BUT2 3002
#define ID_BUT3 3003

4) В WndProc, в WM_CREATE пишу это:

TBBUTTON tbb[3]; //Массив структур TBBUTTON
ZeroMemory(&tbb,sizeof(tbb)); //Обнулим весь массив структур
tbb[0].iBitmap=0; //Порядковый номер кнопки I
tbb[0].idCommand=ID_BUT1; //Идентификатор кнопки 1
tbb[0].fsState=TBSTATE_ENABLED; //Разрешить управление от кнопки 1
tbb[1].iBitmap=1; //Порядковый номер кнопки 2
tbb[1].idCommand=ID_BUT2; //Идентификатор кнопки 2
tbb[1].fsState=TBSTATE_ENABLED; //Разрешить управление от кнопки 2
tbb[2].iBitmap=2; // Порядковый номер кнопки 3
tbb[2].idCommand=ID_BUT3; //Идентификатор кнопки 3
tbb[2].fsState=TBSTATE_ENABLED; //Разрешить управление от кнопки 3
CreateToolbarEx(hWnd,WS_CHILD|WS_BORDER|WS_VISIBLE,-1,3,hInst,ID_BTNS,tbb,3,16,16,16,16,sizeof(TBBUTTON)); //Создаем инструментальную панель

В результате чего получаю банан:
Error 1 error LNK2019: unresolved external symbol __imp__CreateToolbarEx@52 referenced in function "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) 001.obj
 
E

European

comctl32.lib не прилинкован, поэтому и банан
 
S

SiNn3R

Да нет, вроде файл прилинкован, я пробывал и вручную указывать директорию:

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib

Если не ошибаюсь.

У меня Visual Studio 2008, там эта папка прописана по умолчанию...

Ошибка не исчезла... Поделитесь, пожалуйста, какие есть еще методы создания тулбара.
 
S

SiNn3R

Спасибо, просто я пока новичек и многого еще не знаю:(
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!