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

Ошибка при компиляции в Microsoft Visual C++

13.03.2013, 17:52. Показов 1414. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю все по книги Тодда Баррона "Программирование стратегических игр с DirectX 9". При компиляции появляются ошибки:

Ошибка 1 error LNK2001: неразрешенный внешний символ "_WinMainCRTStartup" D:\Source\Strategy\CreateWindow\CreateWi ndow\LINK
Ошибка 2 error LNK1120: 1 неразрешенных внешних элементов D:\Source\Strategy\CreateWindow\Debug\Cr eateWindow.exe

Вот код из книги:

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
//стандартный включаемый файл Windows
#include <windows.h>
 
//прототип функции обратного вызова для обработки сообщений
LRESULT CALLBACK fnMessageProcessor(HWND, UINT, WPARAM, LPARAM);
 
 
//функция вызывается автоматически при запуске программы
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine,
                    int iCmdShow)
{
    HWND        hwnd;
    MSG         msg;
    WNDCLASSEX  wndclass;
 
    //настройка класса окна
    wndclass.cbSize         = sizeof(WNDCLASSEX);
    wndclass.style          = CS_HREDRAW | CS_VERDANA;
    wndclass.lpfnWndProc    = fnMessageProcessor;
    wndclass.cbClsExtra     = 0;
    wndclass.cbWndExtra     = 0;
    wndclass.hInstance      = hInstance;
    wndclass.hIcon          = LoadIcon(NULL, IDI_APPLICATION);
    wndclass.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wndclass.hbrBackground  = (HBRUSH) GetStockObject (WHITE_BRUSH);
    wndclass.lpszMenuName   = NULL;
    wndclass.lpszClassName  = "Window Class";   //имя класса
    wndclass.hIconSm        = LoadIcon(NULL, IDI_APPLICATION);
 
    //регистрация класса окна
    if(RegisterClassEx(&wndclass) == 0)
    {
        //сбой программы
        exit(1);
    }
 
    //создание окна
    hWnd = CreateWindowEx
    {
        WS_EX_OVERLAPPEDWINDOW,
        "WindowClass",              //имя класса
        "Create Window Example",    //текст заголовка
        WS_OVERLAPPEDWINOW,
        0,
        0,
        320,
        200,
        NULL,
        NULL,
        hInstance,
        NULL);
 
        //отображение окна
        ShowWindow(hWnd, iCmdShow);
 
        //обработка сообщений, пока программа не будет прервана
        while(GetMessage (&msg, NULL, 0, 0))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
 
        return (msg.wParam);
    }
 
        //функци обратного вызова для обработки сообщений
        LRESULE CALLBACK fnMessageProcessor (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
        {
            switch(iMsg)
            {
                //вызывается, когда первый раз создается окно
            case WM_CREATE:
                return (0);
                //вызывается, когда окно обновляется
            case WM_PAINT:
                return(0);
                //вызывается, когда пользователь закрывает окно
            case WN_DESTROY:
                PostQuitMessage(0);
                return (0);
            default:
                return DefWindowProc(hWnd, iMsg, wParam, lParam);
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.03.2013, 17:52
Ответы с готовыми решениями:

Visual C++ 2010. Ошибка при компиляции.
error C2059: syntax error : 'type' c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdio Что за ошибка такая ? Я не...

Ошибка при установке Microsoft Visual C++ 6.0
Здравстуйте. Возникла проблема при установке Microsoft Visual C++ 6.0. Описание: Вначале установил Microsoft Visual C++ 6.0....

Ошибка при компиляции Visual Studio 2010
Помогите пожалуйста разобраться, выдаёт вот такую ошибку при компиляции в Visual Studio 2010

7
16 / 16 / 5
Регистрация: 26.09.2012
Сообщений: 70
13.03.2013, 22:09
какой тип приложения при создании проекта выбрали?
0
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 3
14.03.2013, 14:46  [ТС]
Проект Win 32. В дополнительных настройках выбрал Пустой проект.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
14.03.2013, 15:15
Цитата Сообщение от RACER19996 Посмотреть сообщение
case WM_PAINT:
* * * * * * * * return(0);
* * * * * * * * //вызывается, когда пользователь закрывает окно
- Ты вообще думал прежде чем это городить?
Бери аттач в этом посте Нужно компилировать программу

Не по теме:

Больше так с WM_PAINT не прикалывайся



Добавлено через 4 минуты
Цитата Сообщение от RACER19996 Посмотреть сообщение
LRESULE
- LRESULT надо ж!У тебя же заголовок вверху написан, вот
Цитата Сообщение от RACER19996 Посмотреть сообщение
LRESULT CALLBACK fnMessageProcessor(HWND, UINT, WPARAM, LPARAM);
а внизу чё пишешь?

Добавлено через 3 минуты
Нет брєйков
Цитата Сообщение от RACER19996 Посмотреть сообщение
case WM_CREATE:
* * * * * * * * return (0);
* * * * * * * * //вызывается, когда окно обновляется
* * * * * * case WM_PAINT:
* * * * * * * * return(0);
* * * * * * * * //вызывается, когда пользователь закрывает окно
* * * * * * case WN_DESTROY:
* * * * * * * * PostQuitMessage(0);
* * * * * * * * return (0);
* * * * * * default:
- в результате толкьо 0 в возврате без обработки вообе, ну как так можно

Добавлено через 4 минуты
Цитата Сообщение от RACER19996 Посмотреть сообщение
hWnd = CreateWindowEx
* * {
- за это по рукам надо давайть
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
14.03.2013, 15:44
Цитата Сообщение от RACER19996 Посмотреть сообщение
CS_VERDANA;
Цитата Сообщение от RACER19996 Посмотреть сообщение
WS_OVERLAPPEDWINOW,
Цитата Сообщение от RACER19996 Посмотреть сообщение
case WN_DESTROY:
- жесть, ошибка чуть ли ни в каждых 5 стркоах. Фууух RACER19996, любому прогеру было б проще написать с нуля твой проект чем прибирать ошибки в текущем проекте. Ниже в аттаче твой проект с коррективами, та надпись в нём обязательно к исполнению!
Код под спойлером
Кликните здесь для просмотра всего текста
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
// RACER1996.cpp : Defines the entry point for the application.
//
 
#include "stdafx.h"
HWND hMain = NULL;
//ïðîòîòèï ôóíêöèè îáðàòíîãî âûçîâà äëÿ îáðàáîòêè ñîîáùåíèé
LRESULT CALLBACK fnMessageProcessor(HWND, UINT, WPARAM, LPARAM);
 
 
//ôóíêöèÿ âûçûâàåòñÿ àâòîìàòè÷åñêè ïðè çàïóñêå ïðîãðàììû
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine,
                    int iCmdShow)
{
    MSG msg;
    WNDCLASS wc;
    memset(&wc, 0, sizeof(wc));
 
    wc.lpszClassName = "MyWndClass"; //Íàçâàíèå êëàññà îêíà
    wc.hInstance     = hInstance ;
    wc.hCursor       = LoadCursor(NULL, IDC_HAND); //Êóðñîð â îêíå
    wc.hbrBackground = (HBRUSH)(COLOR_3DFACE + 1); //Öâåò îêíà
    wc.lpfnWndProc = fnMessageProcessor;        
    
    RegisterClass(&wc); //Ðåãèñòðèðóåì êëàññ îêíà
    //Ñîçäàòü îêíî
        hMain = CreateWindow
            (
            wc.lpszClassName, 
            "Îêîøêî", 
            WS_OVERLAPPEDWINDOW, 
            100, 100, 400, 300, 0, 0, hInstance, 0);  
        ShowWindow(hMain, iCmdShow); //Ïîêàçàòü îêíî
        UpdateWindow(hMain);         //Îáíîâèòü îêíî
        //Ñòàíäàðòíûé öèêë îáðàáîòêè ñîîáùåíèå ïðèëîæåíèåì
        while (GetMessage(&msg, NULL, 0, 0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
        return (INT)msg.wParam;
}
 
//ôóíêöèÿ îáðàòíîãî âûçîâà äëÿ îáðàáîòêè ñîîáùåíèé
LRESULT CALLBACK fnMessageProcessor(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps = {0};
    HDC hDC     = NULL;
    HBRUSH hBR  = (HBRUSH)COLOR_3DFACE;
    char sMsg[] = "RACER1996, ïèøåøü ÏËÎÕÎ!\nÏî÷èòàé ëèòåðàòóðó ïî API\nèíà÷å ïðîãàòü íå íàó÷èøñÿ!";
    switch(iMsg)
    {
    case WM_CREATE :
        break;
    case WM_PAINT  :
        hDC = BeginPaint(hWnd, &ps);
        GetWindowRect(hWnd,&ps.rcPaint);
        SetTextColor(hDC, RGB(255,0,0));
        SetBkColor(hDC, RGB(240,240,240));
        DrawText(hDC, sMsg, strlen(sMsg), 
            &ps.rcPaint, 
            DT_VCENTER);
        EndPaint(hWnd, &ps);
        break;
    case WM_DESTROY :
        PostQuitMessage(0);
        break;
    default: 
        return DefWindowProc(hWnd, iMsg, wParam, lParam); //âîçâðàùàåì äåôîëòíûå çíà÷åíèÿ                
    }
    return 0l;
}
Миниатюры
Ошибка при компиляции в Microsoft Visual C++  
Вложения
Тип файла: rar RACER1996.exe.rar (8.3 Кб, 4 просмотров)
Тип файла: rar RACER1996_project.rar (9.4 Кб, 8 просмотров)
2
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 3
14.03.2013, 16:58  [ТС]
-=ЮрА=- спасибо! Пожалуй и вправду надо почитать литературу по API.
0
22 / 22 / 8
Регистрация: 20.04.2013
Сообщений: 103
25.06.2013, 16:19
Меню Project-><имя проекта> Properties -> в появившемся окошке слева выбираете Configuration Properties, а там General/
в таблице справа заметите слова Character set и рядом use UNICODE character set - из списка выберите пункт Not Set

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
#include <windows.h>// Стандартный включаемый файл Windows
LRESULT CALLBACK fnMessageProcessor (HWND, UINT, WPARAM, LPARAM);// Прототип функции обратного вызова для обработки сообщений
 
// Функция вызывается автоматически, когда программа запускается
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow){
    HWND        hWnd;
    MSG         msg;
    WNDCLASSEX  wndclass;
 
    // Настройка класса окна
    wndclass.cbSize         = sizeof(WNDCLASSEX);
    wndclass.style          = CS_HREDRAW | CS_VREDRAW;
    wndclass.lpfnWndProc    = fnMessageProcessor;
    wndclass.cbClsExtra     = 0;
    wndclass.cbWndExtra     = 0;
    wndclass.hInstance      = hInstance;
    wndclass.hIcon          = LoadIcon (NULL, IDI_APPLICATION);
    wndclass.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wndclass.hbrBackground  = (HBRUSH) GetStockObject (WHITE_BRUSH);
    wndclass.lpszMenuName   = NULL;
    wndclass.lpszClassName  = "Window Class"; // Имя класса
    wndclass.hIconSm        = LoadIcon (NULL, IDI_APPLICATION);
 
    // Регистрация класса окна
    if(RegisterClassEx(&wndclass) == 0){
        // Сбой программы, выход
        exit(1);
    }
    // Создание окна
    hWnd = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW,
        "Window Class",// Имя класса
        "Create Window Example", // Текст заголовка
        WS_OVERLAPPEDWINDOW,
        0,
        0,
        320,
        200,
        NULL,
        NULL,
        hInstance,
        NULL);
 
    ShowWindow(hWnd, iCmdShow);// Отображение окна
    while(GetMessage (&msg, NULL, 0, 0)){// Обработка сообщений, пока программа не будет прервана
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return (msg.wParam);
}
 
// Функция обратного вызова для обработки сообщений 
// (НЕОБХОДИМА ВСЕМ ПРОГРАММАМ ДЛЯ WINDOWS)
LRESULT CALLBACK fnMessageProcessor (HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam){
    switch(iMsg){
        case WM_CREATE: return(0);// Вызывается, когда впервые создается окно
        case WM_PAINT: return(0);// Вызывается, когда окно обновляется
        case WM_DESTROY: PostQuitMessage(0); return(0); // Вызывается, когда пользователь закрывает окно
        default: return DefWindowProc(hWnd, iMsg, wParam, lParam);
    }
}
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
25.06.2013, 16:26
@Gold_, и что ты сделал нарисовал окно?Молодец!
теперь не меняя код попробуй напечатать в нём текст
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.06.2013, 16:26
Помогаю со студенческими работами здесь

Ошибка при компиляции проекта в ConsoleApp Visual C++
Создаю проект консольного приложения С++ в Visual Studio, выбивает данную ошибку:

Visual Studio 2010.При компиляции ошибка 0xC0000005
При компиляции выдает сообщение : Unhandled exception at 0x5c373aff (msvcp100d.dll) in testt.exe: 0xC0000005: Access violation reading...

Ошибка при компиляции - Microsoft Visual C++ 2010, экспресс-выпуск
Здравствуйте! При компилировании данного кода возникает ошибка. У однокурсника компилятор другой, но этот же код работает. Подскажите, в...

Зависание или ошибка при компиляции microsoft Visual Studio 2008
microsoft Visual Studio 2008 писал на C++ Все раньше было хорошо. Возникла такая проблема. При компиляции программы не создается *.exe...

Ошибка при компиляции Visual Prolog
Приветствую. Я получаю следующую ошибку при компиляции кода в Visual Prolog: main.pro(1,11) error c223 : A class declaration is...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru