Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Ошибка Linker error


Автор: RomaKiev 15.4.2011, 23:00
Доброго времени суток! При компилировании следующего кода выскакивает непонятное мне сообщение 

[Linker error] undefined reference to `TextOutA@20'
Id returned 1 exit status

Может кто-нибудь знает что это значит и как с этим бороться? 
Как я понимаю это связано с функцией TextOut().... 

Код

#include<windows.h>
#include<windowsx.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
void OnDestroy(HWND);
void OnPaint(HWND);
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int)
{
        char szClassName[]="MainWindow";
        char szTitle[]="Programm";
        MSG Msg;
        WNDCLASS wc;
        ZeroMemory(&wc,sizeof(wc));
        wc.hInstance=hInst;
        wc.lpfnWndProc=WndProc;
        wc.lpszClassName=szClassName;
        wc.style=CS_VREDRAW|CS_HREDRAW;
        wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
        wc.hCursor=LoadCursor(NULL,IDC_ARROW);
        //wc.hbrBackground=GetStockBrush(LTGRAY_BRUSH);
        RegisterClass(&wc);
        HWND hwnd=CreateWindow(szClassName,szTitle,WS_OVERLAPPEDWINDOW & ~WS_MINIMIZEBOX, 40,40,800,300,HWND_DESKTOP,NULL,hInst,NULL);
        ShowWindow(hwnd, SW_SHOWNORMAL);
        while(GetMessage(&Msg,NULL,0,0))
        DispatchMessage(&Msg);
        return 0;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
        switch(msg)
        {
        HANDLE_MSG(hwnd, WM_DESTROY, OnDestroy);
        HANDLE_MSG(hwnd,WM_PAINT,OnPaint);
        default:
           return DefWindowProc(hwnd, msg,wParam,lParam);
           }
}
void OnDestroy(HWND)
{
     PostQuitMessage(0);
     }
void OnPaint(HWND hwnd)
{
     char szText[]="This is my first string in this programm!";
     PAINTSTRUCT ps;
     HDC hdc=BeginPaint(hwnd, &ps);
     TextOut(hdc,5,30,szText,strlen(szText));//есть подозрения что проблема именно здесь!
     EndPaint(hwnd,&ps); 
 }


Заранее спасибо!

Автор: GremlinProg 16.4.2011, 10:05
Код

#pragma comment( lib, "Gdi32" )

Автор: RomaKiev 16.4.2011, 18:11
а что это значит?

Автор: GremlinProg 16.4.2011, 18:38
Цитата(RomaKiev @  16.4.2011,  20:11 Найти цитируемый пост)
а что это значит?

TextOut находится в библиотеке Gdi32, возможно она не подключена в проекте,
поэтому надо добавить эту строку в код, чтобы импортировать библиотеку явно

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)