Форум программистов, компьютерный форум CyberForum.ru

error lnk 2019 - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
17.05.2011, 14:15     error lnk 2019 #1
здраствуйте! решил заняться win api и mfc, открываю книгу "Visual C++. Разработка Windows-приложений с помощью MFC и API-функций" пишу первый листинг.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include "stdafx.h"
#include "firstWin.h"
//#include <Windows.h>
 
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
 
BOOL InitApplication(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow);
 
LPCSTR  szClassName     = "FrameWndApi";
LPCSTR  szTitle         = "Создание Windows приложений";
 
int WINAPI WinMain(
    HINSTANCE   hInstance,
    HINSTANCE   hPrevInstance,
    LPSTR       lpCmdLine,
    int         nCmdShow) 
{
    if (  !hPrevInstance  ) {
        if (  !InitApplication(hInstance)  ) 
            return FALSE;
    }
 
    if (  !InitInstance(hInstance, nCmdShow)  )
        return FALSE;
 
    MSG         msg;
 
    while (  GetMessage(&msg, NULL, 0, 0)  ) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    return static_cast<int>( msg.wParam );
}
 
BOOL InitApplication(HINSTANCE hInstance) {
    WNDCLASSA   wc;
    
    wc.style            = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc      = static_cast< WNDPROC >( WndProc );
    wc.cbClsExtra       = 0;
    wc.cbWndExtra       = 0;
    wc.hInstance        = hInstance;
    wc.hIcon            = LoadIcon( NULL, IDI_ASTERISK );
    wc.hCursor          = LoadCursor( NULL, IDC_CROSS );
    wc.hbrBackground    = reinterpret_cast< HBRUSH >( COLOR_WINDOW + 1 );
    wc.lpszMenuName     = NULL;
    wc.lpszClassName    = szClassName;
 
    return RegisterClassA( &wc );
}
 
BOOL InitInstance( HINSTANCE hInstance, int nCmdShow ) {
    HWND hWnd;
    hWnd    = CreateWindowA(    szClassName,
                            szTitle,
                            WS_OVERLAPPEDWINDOW,
                            CW_USEDEFAULT,
                            CW_USEDEFAULT,
                            CW_USEDEFAULT,
                            CW_USEDEFAULT,
                            NULL,
                            NULL,
                            hInstance,
                            NULL);
 
    if ( !hWnd ) 
        return FALSE;
    if ( UpdateWindow(hWnd) )
        return FALSE;
 
    return true;
}
компилирую, выдаёт ошибку:
C++
1
Ошибка  1   error LNK2019: ссылка на неразрешенный внешний символ "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) в функции "int __cdecl InitApplication(struct HINSTANCE__ *)" (?InitApplication@@YAHPAUHINSTANCE__@@@Z)  c:\Users\alex\documents\visual studio 2010\Projects\firstWin\firstWin\firstWin.obj  firstWin
C++
1
Ошибка  2   error LNK1120: 1 неразрешенных внешних элементов    c:\users\alex\documents\visual studio 2010\Projects\firstWin\Debug\firstWin.exe 1   1   firstWin
кто-нибудь понимает чё он хочет от меня?

ну и до этого он не хотел компилироваться из-за того что чё то ему не понравились некоторые функции со строками, я в определениях посмотрел там есть по два прототипа - для аски и юникода. Ну я везде где надо добавил суффикс А, в связи с этим листинг чуть-чуть изменился. В связи с этим назрел второй вопрос - как компилировал сам автор книги всё это и всегда ли надо явно указывать юникод или аски суффикс? Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2011, 14:15     error lnk 2019
Посмотрите здесь:

Error LNK 2019. VS 2010 C++
Работа с tinyxml ошибки LNK 2019 и LNK 2001 C++
error lnk? C++
C++ Выдает ошибку LNK 2019
C++ Error LNK 2001
C++ LNK Ошибки - 2019 и 1120
Шаблон с++ (Ошибка LNK 2019) C++
C++ Error LNK 2019. Внешняя библиотека DocxFactory

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
17.05.2011, 14:38     error lnk 2019 #2
Ну так где процедура WndProc??? Я ее не вижу, компилятор - видит только прототип. А линкер ее не видит - нет ее у вас.
На всякий случай WndProc - это оконная процедура, в которой практически весь функционал и пишется.
Yandex
Объявления
17.05.2011, 14:38     error lnk 2019
Ответ Создать тему
Опции темы

Текущее время: 14:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru