Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 09.02.2013
Сообщений: 15

В WinApi с классами всё в порядке?

25.03.2013, 01:20. Показов 732. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть 4 файла:

класс: game_object.cpp game_object.h
и файлы: Header.h Header.cpp

всё работает, но только стоит объявить объекта класса, уже крах, выдаёт ошибки LNK2019 и LNK1120

а класс причём пустой, вот код каждого файла:

Header.h
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
#ifndef HEADER_H
#define HEADER_H
 
#include <Windows.h>
#include <windowsx.h>
#include "game_object.h"
 
//  Дескрипторы
HBITMAP hBitMap;
HDC dc, memDC;
BITMAP bm;
PAINTSTRUCT ps;
 
//  Дискрипторы окон
HWND hWindow;
 
//  Классы окон
WNDCLASSEX  wcl;
 
//  Дескрипторы меню
 
//  define'ы
 
//  Оконные процедуры
LRESULT CALLBACK WindowProc(HWND, UINT, WPARAM, LPARAM);
 
// Прототипы функций
INT WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, INT);
 
// Взломщики сообщений
void Cls_OnClose(HWND hwnd);
void Cls_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
 
#endif
Header.cpp
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include "Header.h"
 
// Реализация функций
INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR szCommandLine, INT nShowWindow)
{
    MSG msg;
    wcl.cbClsExtra      =   NULL;
    wcl.cbSize          =   sizeof(wcl);
    wcl.cbWndExtra      =   NULL;
    wcl.hbrBackground   =   HBRUSH(GetStockObject(WHITE_BRUSH));
    wcl.hCursor         =   LoadCursor(hInst, IDC_ARROW);
    wcl.hIcon           =   LoadIcon(hInst, IDI_APPLICATION);
    wcl.hIconSm         =   LoadIcon(hInst, IDI_APPLICATION);
    wcl.hInstance       =   hInst;
    wcl.lpfnWndProc     =   WindowProc;
    wcl.lpszClassName   =   L"skl_classname";
    wcl.lpszMenuName    =   0;
    wcl.style           =   CS_VREDRAW | CS_HREDRAW;
    if(!RegisterClassEx(&wcl))
    {
        MessageBox(0, L"Can't register class", L"Error", MB_OK|MB_ICONERROR);
        return 0;
    }
    hWindow     =   CreateWindowEx(
        WS_EX_OVERLAPPEDWINDOW, wcl.lpszClassName,
        L"Имя окна", WS_OVERLAPPEDWINDOW,
        100, 50,
        1024, 768,
        0, 0,
        hInst, 0
        );
    if(!hWindow)
    {
        MessageBox(0, L"Can't create window", L"Error", MB_OK|MB_ICONERROR);
        return 0;
    }
    ShowWindow(hWindow, SW_SHOWDEFAULT);
    while(GetMessage(&msg, 0, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
 
//  Оконные процедуры
LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch(msg)
    {
    case WM_CREATE:
    {
        hBitMap =   (HBITMAP)LoadImage(0, L"https://www.cyberforum.ru/images/ai/walk_pistol.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
        dc  =   GetDC(hWindow);
        memDC   =   CreateCompatibleDC(dc);
        SelectObject(memDC, hBitMap);
        ReleaseDC(hWindow, dc);
        break;
    }
    HANDLE_MSG(hwnd, WM_COMMAND, Cls_OnCommand);
    HANDLE_MSG(hwnd, WM_CLOSE, Cls_OnClose);
    case WM_PAINT:
    {
        dc  =   BeginPaint(hwnd, &ps);
        static int x = 25, y = 50, cadr = 0;
        Sleep(75);
        PatBlt(dc, x, y, 50, 50, WHITENESS);
        BitBlt(dc, x += 2, y, 50, 50, memDC, cadr++ * 50, 0, SRCCOPY);
        if(cadr == 4)
            cadr = 0;
        EndPaint(hwnd, &ps);
        break;
    }
    default: return DefWindowProc(hwnd, msg, wParam, lParam);
    }
}
 
//  Реализация взломщиков
void Cls_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
 
}
void Cls_OnClose(HWND hwnd)
{
    if(hwnd == hWindow)
        PostQuitMessage(0);
    DestroyWindow(hwnd);
}
game_object.h
C++
1
2
3
4
5
6
7
8
9
10
#ifndef GAME_OBJECT_H
#define GAME_OBJECT_H
 
class Game_Object
{
public:
    Game_Object();
};
 
#endif // GAME_OBJECT_H
game_object.cpp
C++
1
2
3
4
5
#include "game_object.h"
 
Game_Object::Game_Object()
{
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.03.2013, 01:20
Ответы с готовыми решениями:

Вывести все четные числа массива в порядке возрастания их индексов, а затем все нечетные в порядке убывания
Дан целочисленный массив размера N.Вывести в начале все содержащиеся в данном массиве четные числа в порядке возрастания их индексов, а...

Массив. Вывести все четные в порядке возрастания их индексов,все нечетные в порядке их убывания
помогите, пожалуйста, решить задачи по массивам. очень нужно. полностью пропустила эту тему( 1.дан целочисленный массив размера N....

Вывести вначале все содержащиеся в данном массиве четные числа в порядке возрастания их индексов, а затем все нечетные в порядке убывания индексов
Дан целочисленный массив размера N. Вывести вначале все содержащиеся в данном массиве четные числа в порядке возрастания их индексов, а...

3
Невнимательный
 Аватар для ft4l
3114 / 1293 / 359
Регистрация: 08.02.2013
Сообщений: 7,571
Записей в блоге: 2
25.03.2013, 02:42
выдаёт ошибки LNK2019 и LNK1120
а текст ошибок?
какой компилятор?

Компилирует но линкеру чего-то не хватает, ответ возможно в параметрах коммандной строки для link.exe

Добавлено через 2 минуты
а класс причём пустой
а c не пустым?
1
1 / 1 / 0
Регистрация: 09.02.2013
Сообщений: 15
25.03.2013, 11:17  [ТС]
если он будет не пустым, в честь чего он заработает?
компилятор MSVS2010


Добавлено через 5 минут
отбой, уже справился, в Qt Creator не пустой проект надо создавать, а проект GUI
0
Невнимательный
 Аватар для ft4l
3114 / 1293 / 359
Регистрация: 08.02.2013
Сообщений: 7,571
Записей в блоге: 2
25.03.2013, 11:41
ни разу не юзал MSVS2010, вообще
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.03.2013, 11:41
Помогаю со студенческими работами здесь

Привести в лексикографическом порядке (в порядке возрастания) все r-размещения с повторениями из элементов множества {1,2, .. n}
Нужно составить программу с указанными входными данными и результатами. Задано натуральное число n, которое имеет такое ограничение...

Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае
Пытаюсь освоить рекурсию, пока больше &quot;методом тыка&quot;, правда... Вроде, несложная задача на вывод последовательности чисел, но никак не...

Вывести все числа от A до B включительно, в порядке возрастания, если A <B, или в порядке убывания в противном случае
Вариант 1 Даны два целых числа A и В (каждое в отдельной строке). Выведем все числа от A до B включительно, в порядке возрастания, если A...

Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае.
пробовала сделать ,но выдаёт ошибки я не понимаю,что он требует ТЕКСТ ЗАДАЧИ. Даны два целых числа A и В (каждое в отдельной...

В алфавитном порядке порядке напечатать (по одному разу) все строчные русские буквы, входящие в заданный текст
С ( Си ) Вводится текст, за которым следует точка. В алфавитном порядке порядке напечатать ( по разу) все строчные русские буквы,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru