Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2009, 21:21   #1
dvma04
 
Регистрация: 17.09.2009
Сообщений: 3
По умолчанию main.cpp:18: undefined reference to `_GetStockObject@4' Как с этим бороться?

Доброго времени суток.
Пробую программировать WinAPI. Столкнулся со следующей проблемой

**** Internal Builder is used for build ****
g++ -oWinAPI_Hello_Full.exe src\main.o
src\main.o: In function `WinMain':
C:/MyProgr/projects/eclipse_proj/WinAPI_Hello_Full/Debug/../src/main.cpp:18: undefined reference to `_GetStockObject@4'
collect2: ld returned 1 exit status
Build error occurred, build is stopped
Time consumed: 635 ms.

Не подскажите чем может быть вызвана эта проблема.
Код:
/*
 * main.cpp
 *
 *  Created on: 02.10.2009
 *      Author: DM
 */
//---------Includes--------------------
#include <windows.h>
//-----------Function prototype--------
LRESULT CALLBACK wndProc(HWND,UINT,WPARAM,LPARAM);//Window procedure
//----------------------Main function-----------------------------
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow)
{
    HWND hMainWnd;
    char szClassName[] = "MyClass";
    MSG msg;
    WNDCLASSEX wc;
    //Заполняем класс окна.
      wc.cbSize = sizeof(wc);
      wc.style = CS_HREDRAW|CS_VREDRAW;
      wc.lpfnWndProc = wndProc;
      wc.cbClsExtra = 0;
      wc.cbWndExtra = 0;
      wc.hInstance = hInstance;
      wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
      wc.hCursor = LoadCursor(NULL,IDC_ARROW);
      wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
      wc.lpszMenuName = NULL;
      wc.lpszClassName = szClassName;
      wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
    //Регистрируем класс окна.
    if(!RegisterClassEx(&wc)){
    	MessageBox(NULL,"Can't registr class","Error",MB_OK);
    	return 0;}
    //Создаем окно приложения
    hMainWnd = CreateWindow(szClassName,"A Hello Application",WS_OVERLAPPEDWINDOW,
    		CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, (HWND)NULL,(HMENU)NULL,(HINSTANCE)hInstance,NULL);
    if(!hMainWnd){
    	MessageBox(NULL,"Can't create main window","Error",MB_OK);
    	return 0;
    }
    //Показываем окно.
    ShowWindow(hMainWnd,nCmdShow);
    //Цикл обработки сообщений
    while(GetMessage(&msg,NULL,0,0)){
    	TranslateMessage(&msg);
    	DispatchMessage(&msg);
    }
	return msg.wParam;
}
//-----------Else function---------------
LRESULT CALLBACK wndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
    HDC hDC;
    PAINTSTRUCT ps;
    RECT rect;
    switch(uMsg)
    {
    case WM_PAINT:
    	hDC = BeginPaint(hWnd, &ps);
    	GetClientRect(hWnd,&rect);
    	DrawText(hDC,"Hello world!",-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
    	EndPaint(hWnd,&ps);
    	break;
    case WM_CLOSE:
    	DestroyWindow(hWnd);
    	break;
    case WM_DESTROY:
    	PostQuitMessage(0);
    	break;
    default:DefWindowProc(hWnd,uMsg,wParam,lParam);
    }
	return 0;
}

Последний раз редактировалось Sazary; 03.10.2009 в 22:29.
dvma04 вне форума Ответить с цитированием
Старый 02.10.2009, 21:56   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Попробуйте в свойствах проекта(точнее линкера) подключить библиотеку gdi32.lib
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 03.10.2009, 13:24   #3
dvma04
 
Регистрация: 17.09.2009
Сообщений: 3
По умолчанию

Возможно ли, что не работает из-за Win 7. И как еще можно инициализировать кисть?
dvma04 вне форума Ответить с цитированием
Старый 10.10.2009, 21:26   #4
dvma04
 
Регистрация: 17.09.2009
Сообщений: 3
По умолчанию

Вопрос решен. Загоняла IDE. Поставил другую пошел этот же код без изменений.))))
dvma04 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++. Что и как можно внести в DLL и как потом с этим работать? dampirik Помощь студентам 5 21.09.2009 08:19
Функция main и main(void) Pord Помощь студентам 1 11.12.2008 15:57
[Linker error] undefined reference to `function name` kermit Помощь студентам 4 11.06.2008 09:19
С этим надо бороться... Карась О форуме и сайтах клуба 10 01.06.2008 11:10