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

Не понимаю в чем ошибка

10.03.2020, 14:56. Показов 3529. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я только начал изучать WinAPI по книге Ламот "Программирование игр для windows. Советы профессионала 2-е издание".
В книге был представлен вот этот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#include <windowsx.h>
 
int WINAPI WinMain(HINSTANCE hinstance,
    HINSTANCE hprevinstance,
    LPSTR lpcmdline, 
    int ncmdshow) {
 
MessageBox(NULL, "THERE CAN BE ONLY ONE!!!", "Hello World", MB_OK | MB_ICONEXCLAMATION);
 
return 0;
}
Но он не работает, выдавая вот такую ошибку при компиляции:
"error LNK2019: ссылка на неразрешенный внешний символ __imp__MessageBoxA@16 в функции _WinMain@16
HelloWorld.exe : fatal error LNK1120: неразрешенных внешних элементов: 1"

Подскажите пожалуйста, что в этом коде не так, я не понимаю в чем ошибка.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.03.2020, 14:56
Ответы с готовыми решениями:

Ошибка -is not a valid integer value (не является допустимым целым значением), не понимаю в чем ошибка
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop #include...

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

Не понимаю в чем ошибка
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &quot;pch.h&quot; #include &lt;iostream&gt; const int N = 25; int writee(int a); int main() ...

6
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
10.03.2020, 15:12
Лучший ответ Сообщение было отмечено KarKarasik как решение

Решение

Цитата Сообщение от KarKarasik Посмотреть сообщение
Подскажите пожалуйста, что в этом коде не так, я не понимаю в чем ошибка.
Добавь в линкере User32.lib
1
 Аватар для DebuggeR94
13 / 9 / 3
Регистрация: 06.01.2015
Сообщений: 62
10.03.2020, 17:38
Лучший ответ Сообщение было отмечено KarKarasik как решение

Решение

KarKarasik, как уже упомянул oleg-m1973, добавь User32.lib, или используй Visual Studio, он по умолчанию основные либы в проект добавляет. Благо теперь есть бесплатная, полнофункциональная community редакция.
1
0 / 0 / 0
Регистрация: 14.09.2019
Сообщений: 57
10.03.2020, 19:04  [ТС]
Спасибо. Но почему без этой строчки кода код не работал, а с ней работает?
#pragma comment(lib, "User32.lib").
0
46 / 115 / 11
Регистрация: 24.04.2019
Сообщений: 838
10.03.2020, 19:18
KarKarasik, почитайте про статическое и динамическое связывание. (Оно же позднее и раннее связывание).
0
 Аватар для GoodWeather
886 / 588 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
10.03.2020, 20:45
Лучший ответ Сообщение было отмечено KarKarasik как решение

Решение

Подключать либы можно разными способами. Это зависит и от компилятора и от IDE.
C++
1
#pragma comment(lib, "User32.lib")
это один из способов подключить либу.
Где-то надо указывать в командной строке компилятора, где-то дописывать в какой-то файл, где-то открыть "Настройки проекта" и там настраивать.
1
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
10.03.2020, 20:53
Лучший ответ Сообщение было отмечено KarKarasik как решение

Решение

Цитата Сообщение от KarKarasik Посмотреть сообщение
Спасибо. Но почему без этой строчки кода код не работал, а с ней работает?
#pragma comment(lib, "User32.lib").
Потому что этот макрос подключает библиотеку в которой реализован MessageBox и другие.
То же самое можно (и лучше) сделать в свойствах проекта Linker->Input->AdditionalDependencies
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.03.2020, 20:53
Помогаю со студенческими работами здесь

Не понимаю в чем ошибка
Мне нужно вывести значение минимума и максимума в файл 2.txt, но при компиляции происходит ошибка. Помогите пожалуйста. Вот код: ...

Не понимаю, в чем ошибка
Я как бы что-то пытался, и вот что получилось, но не работает. #include &lt;iostream&gt; using namespace std; int factorial(int N) ...

Не понимаю в чем ошибка (
Решил создать свой первый класс, выбрал для этого матрицу, как объект и вот в первом же методе(ввод матрицы)он выкидывает из проги и пишет...

Не понимаю, в чём ошибка
Пишу GUI-приложение на Qt под windows. Запускаю прогу в режиме отладки. Выводится окно, всё нормально, но при нажатии на любую кнопку, ещё...

Наследование, не понимаю в чем ошибка
Задание из Лафоре, наследование. Даже пример есть, но почему-то не работает: в консоле выводит первые 79 символов s1 и все. VS 2010 class...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
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 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru