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

Передача функции классу

14.10.2012, 17:35. Показов 644. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Main.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
#include <windows.h>
#include "wincls.h"
LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
char szClassName[ ] = "CodeBlocksWindowsApp";
int WINAPI WinMain (HINSTANCE hThisInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR lpszArgument,
                     int nCmdShow)
{
    MSG messages;   
    WndCls wc(hThisInstance,
              szClassName,
              WindowProcedure);  // undefined reference to `WndCls::WndCls(HINSTANCE__*, char const*, long (*)(HWND__*, unsigned int, unsigned int, long), unsigned int, char const*)
 
 
    while (GetMessage (&messages, NULL, 0, 0))
    {
        TranslateMessage(&messages);
        DispatchMessage(&messages);
    }
    return messages.wParam;
}
 
 
 
 
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HDC hDC;
    PAINTSTRUCT ps;
    RECT rc;
    switch (message)                  
    {
        case WM_PAINT:
            hDC = BeginPaint(hwnd, &ps);
            GetClientRect(hwnd, &rc);
            DrawText(hDC, (LPSTR)"String", -1, &rc, DT_SINGLELINE|DT_CENTER|DT_VCENTER);
            EndPaint(hwnd, &ps);
            break;
        case WM_DESTROY:
            PostQuitMessage (0);       
            break;
        default:                     
            return DefWindowProc (hwnd, message, wParam, lParam);
    }
 
    return 0;
}
wincls.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef WINCLS_H_INCLUDED
#define WINCLS_H_INCLUDED
 
#include <windows.h>
 
class WndCls
{
    private:
        HWND hwnd;
        WNDCLASSEX wc;
    public:
        WndCls(HINSTANCE hInst,
               LPCTSTR szClassName,
               LRESULT (WINAPI *WndProc)(HWND, UINT, WPARAM, LPARAM),
               UINT style = CS_HREDRAW|CS_VREDRAW,
               LPCTSTR szMenuName = NULL);
        HWND GetHwnd(){ return hwnd; }
 
};
 
#endif // WINCLS_H_INCLUDED
wincls.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
#include "wincls.h"
 
WndCls::WndCls(HINSTANCE hInst,
               LPCTSTR szClassName,
               LRESULT (WINAPI *WndProc)(HWND, UINT, WPARAM, LPARAM),
               UINT style,
               LPCTSTR szMenuName)
{
    wc.hInstance = hInst;
    wc.lpszClassName = szClassName;
    wc.style = style;
    wc.cbSize = sizeof (WNDCLASSEX);
    wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wc.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor (NULL, IDC_ARROW);
    wc.lpfnWndProc = WndProc;
    wc.lpszMenuName = szMenuName;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
 
 
}
Проблема в
C++
1
2
3
    WndCls wc(hThisInstance,
              szClassName,
              WindowProcedure);  // undefined reference to `WndCls::WndCls(HINSTANCE__*, char const*, long (*)(HWND__*, unsigned int, unsigned int, long), unsigned int, char const*)
Ошибка компиляции в коментариях.

Я в курсе, что не написал "RegisterClass и CreateWindow" допишу, позже, когда разберусь как от этой проблемы избавиться.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.10.2012, 17:35
Ответы с готовыми решениями:

Передача функции-члена в качестве аргумента (не через указатель)
Привет! Озадачился такой проблемой - вот пример того, что нужно typedef void(class1::*method)(); void func (method) {}; func...

передача строк функции или классу
Возник вопрос, как правильно передавать строки классу. Допустим, имеется строка, класс и функция класса, чтобы эту строку туда запихнуть. ...

Передача свойств классу
Добрый день, помню что где-то читал про передачу значений свойствам нового экземпляра класса по такому виду: MyClass testclass = new...

1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,902
Записей в блоге: 12
14.10.2012, 20:35
Вот ты будешь смеяться, но ничего подобного твоей ошибке мне C::B не выдает:
Миниатюры
Передача функции классу  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.10.2012, 20:35
Помогаю со студенческими работами здесь

Передача строк другому классу
В общем вкратце обрисую ситуацию, на первом снимке имеется кнопка, где я ввожу в тексбоксы логин и пасс, на втором снимке мне надо их...

Передача List другому классу
using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; using System.Threading; ...

Передача свойств классу из другой формы
Имеется класс: class Show { public Boolean Help { get; set; } //свойство настроек &quot;Включить подсказки&quot; ...

Передача пункта меню классу и Label
Только что занялся WPF и есть несколько вопросов: есть меню, есть таблица. В зависимости от выбора пункта меню надо менять заголовок в...

Передача параметров классу, обработка класса
Подскажите, почему не работает? Есть класс &quot;class FileManager&quot; , передаю параметры в класс с помощью переменных через пост L1...L4 , хочу,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru