Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

InitCommonControls(): ошибка при линковке

321
04 февраля 2003 года
Doomych
124 / / 20.01.2000
Программа из книжки П.В. Румянцева "Азбука программирования в WIN32 API" (кусок функции WinMain()):

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)
{
HWND hWnd;
WNDCLASS WndClass;
MSG Msg;

hInst = hInstance;

// Регистрируем создаваемый класс окна. Заполняем структуру WNDCLASS
WndClass.style = CS_HREDRAW | CS_VREDRAW;
WndClass.lpfnWndProc = (WNDPROC)MenuDemoWndProc;
WndClass.cbClsExtra = 0;
WndClass.cbWndExtra = 0;
WndClass.hInstance = hInstance;
WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
WndClass.lpszMenuName = NULL;
WndClass.lpszClassName = "MenuExample";

if ( !RegisterClass(&WndClass) )
{
MessageBox(NULL, "Класс не зарегистрирован", "Error", MB_OK);
return 0;
}

hWnd = CreateWindow("MenuExample", "Program #2 p.81",
WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL,
hInstance, NULL);
if ( !hWnd )
{
MessageBox(NULL, "Окно не создано", "Error", MB_OK);
return 0;
}

InitCommonControls();
hStatusWindow = CreateStatusWindow(WS_CHILD | WS_VISIBLE, "Menu sample", hWnd, wId);
if ( !hStatusWindow )
{
MessageBox(NULL, "Статусная строка не создана", "Error", MB_OK);
return 0;
}
.....................................
.....................................
}

LRESULT CALLBACK MenuDemoWndProc(HWND hWnd, UINT Message, UINT wParam, LONG lParam)
{
.....................................
.....................................
}

А вот результат компиляции:

--------------------Configuration: Menu - Win32 Debug--------------------
Compiling...
Menu.cpp
Linking...
Menu.obj : error LNK2001: unresolved external symbol __imp__CreateStatusWindowA@16
Menu.obj : error LNK2001: unresolved external symbol __imp__InitCommonControls@0
Debug/Menu.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

Menu.exe - 3 error(s), 0 warning(s)

Почему? (InitCommonControlsEx() пробовал - то же самое, только вместо __imp__InitCommonControls@0 - __imp__InitCommonControlsEx@4.
Спасибо всем, кто ответит!
380
04 февраля 2003 года
Arestov
285 / / 20.09.2000
пропиши в настройках проекта, линковку с библой:
comctl32.lib

и вообще обращай внимание на описание ф-ций в МСДН:

InitCommonControls


Registers and initializes the common control window classes. This function is obsolete. New applications should use the InitCommonControlsEx function.

void InitCommonControls(VOID);

Return Values
No return value.

Requirements
Windows NT/2000: Requires Windows NT 3.51 or later
Windows 95/98/Me: Requires Windows 95 or later
Header: Declared in commctrl.h
Import Library: comctl32.lib


commctrl.h нада #include
comctl32.lib её нада в свойствах проекта добавить в Linker options
321
04 февраля 2003 года
Doomych
124 / / 20.01.2000
Спасибо, помогло!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог