Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для frostbool
-7 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 35

Не работает исходник из учебника

30.06.2014, 00:49. Показов 1110. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Читал учебник по WinAPI, дочитался до примера. Решил скописать, посмотреть как же сработает. Не сработало никак.


Как исправить ошибку?
Почему она вообще возникла, ведь исходник-то все-таки в книжке печатан?

Может кто-нибудь скинуть готовый исходник с комментариями (С примером кнопок, оформления, как в книжке, ползунков там... если не жалко )?
Миниатюры
Не работает исходник из учебника   Не работает исходник из учебника  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.06.2014, 00:49
Ответы с готовыми решениями:

код с учебника не работает
Переписал код с учебника Э. Харрис - PHP-MySQL для начинающих <html> <head> <title>Row Your Boat</title> </head> ...

Программа из учебника не работает
Только начала изучать java, первая простенькая программка по учебнику, и она не работает. Что не так? до рисовать графику с циклом ...

Не работает пример из учебника
Приветствую, Вот...

6
 Аватар для frostbool
-7 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 35
30.06.2014, 01:17  [ТС]
Прошу прощения, забыл сам текст.
Кликните здесь для просмотра всего текста
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
#include <Windows.h>
BOOL RegClass(WNDPROC,LPCTSTR,UINT);
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE hInst;
char szClassName[]="WindowAppClass";
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR IpszCmdLine, int nCmdShow)
{
    MSG msg; HWND hwnd; hInst=hInstance;
    if(!RegClass(WndProc,szClassName,COLOR_WINDOW))
        return FALSE;
    hwnd=CreateWindow(szClassName,"App",
        WS_OVERLAPPEDWINDOW|WS_VISIBLE,
        CW_USEDEFAULT,CW_USEDEFAULT,
        CW_USEDEFAULT,CW_USEDEFAULT,
        0,0,hInstance,NULL);
    if(!hwnd) return FALSE;
    while(GetMessage(&msg,0,0,0)) DispatchMessage(&msg);
    return msg.wParam;
}
 
BOOL RegClass(WNDPROC Proc, LPCTSTR szName, UINT brBackground)
{
    WNDCLASS wc; wc.style=wc.cbClsExtra=wc.cbWndExtra=0;
    wc.lpfnWndProc=Proc; wc.hInstance=hInst;
    wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
    wc.hCursor=LoadCursor(NULL,IDC_ARROW);
    wc.hbrBackground=(HBRUSH)(brBackground+1);
    wc.lpszMenuName=NULL; wc.lpszClassName=szName;
    return (RegisterClass(&wc)!=0);
}
 
LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
    switch (msg)
    {case WM_DESTROY:{PostQuitMessage(0);return 0;}}
    return DefWindowProc(hwnd,msg,wParam,lParam);
0
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
30.06.2014, 08:01
C++
1
2
3
4
5
6
7
TCHAR szClassName[]=L"WindowAppClass";
....
    hwnd=CreateWindow(szClassName,L"App",
        WS_OVERLAPPEDWINDOW|WS_VISIBLE,
        CW_USEDEFAULT,CW_USEDEFAULT,
        CW_USEDEFAULT,CW_USEDEFAULT,
        0,0,hInstance,NULL);
Либо убрать UNICODE из Preprocessor Definitions
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
30.06.2014, 10:47
Лучший ответ Сообщение было отмечено frostbool как решение

Решение

frostbool, какая-то десятка убогая. Поставьте 2013 экспресс, тем более, что бесплатная, значит всегда можно последней версией пользоваться. А то без подсветки синтаксиса как-то убого... (см.скриншот)

И как уже выше сказали, перед строками нужно использовать макрос L для использования в винапи функциях, которые принимают не char[], а LPSTR. Подробнее - тут почитайте
Миниатюры
Не работает исходник из учебника  
1
 Аватар для oxyfat
68 / 65 / 21
Регистрация: 01.05.2014
Сообщений: 247
30.06.2014, 11:44
Приветствую!
Вы - в своих функциях ( лучше всего ) вегда определяйте константами.
Во-первых: будет работать везде, а во-вторых - нагляднее.
void Test ( const TCHAR* Match)
1
 Аватар для frostbool
-7 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 35
01.07.2014, 02:44  [ТС]
Спасибо всем большое! Статью прочитаю обязательно.
А есть у кого-нибудь образец?
Цитата Сообщение от frostbool Посмотреть сообщение
Может кто-нибудь скинуть готовый исходник с комментариями
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
01.07.2014, 02:57
Лучший ответ Сообщение было отмечено Psilon как решение

Решение

frostbool, файл -> создать -> вин32 проект -> готово. После этого запускай, там будет стандартный hello-wolrd проект с парой кнопок.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.07.2014, 02:57
Помогаю со студенческими работами здесь

Пример из учебника не работает
В общем записал код из учебника Стивен Прата - Язык программирования C. Лекции и упражнения (5-е издание) - 2013, чтоб посмотреть как он...

Не работает пример из учебника
#include &lt;string.h&gt; #include &lt;cstdio&gt; using namespace std; // начало объявления класса class CppStudio // имя класса { ...

Не работает прога из учебника
Нашла очень хороший учебник в инете: то, что нужно, мало воды, много примеров. Как только захотела запустить прогу и посмотреть, как она...

Не работает класс переписанный из учебника
Полностью переписал класс из учебника, в итоге куча ошибок, как-то конфликтует со стандартным классом, но я переписал в точности до...

Простейший код из учебника не работает
Пытаюсь начать программировать на Qt. Но простейшие программки из учебника не работают. Например, этот: #include &lt;QApplication&gt;...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru