Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2021, 16:55   #1
cpplearning
Новичок
Джуниор
 
Регистрация: 20.09.2021
Сообщений: 4
По умолчанию помогите с кодом, когда компилятор vs2019 выдаёт ошибку

Код:
#include <conio.h>
#include <Windows.h>
#include <iostream>
#include <math.h>
using namespace std;
void Col(int bg, int txt) {
	HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(hConsole, (WORD)((bg << 4) | txt));
}
void setcur(int x, int y) {
	HANDLE hcon = GetStdHandle(STD_OUTPUT_HANDLE);
	COORD coord;
	coord.X = x;
	coord.Y = y;
	SetConsoleCursorPosition(hcon, coord);
}
long t = 1;
#include <string>
template<typename Char, typename Traits, typename Allocator>
std::basic_string<Char, Traits, Allocator> operator *
(const std::basic_string<Char, Traits, Allocator> s, size_t n)
{
	std::basic_string<Char, Traits, Allocator> tmp = s;
	for (size_t i = 0; i < n; ++i)
	{
		tmp += s;
	}
	return tmp;
}
template<typename Char, typename Traits, typename Allocator>
std::basic_string<Char, Traits, Allocator> operator *
(size_t n, const std::basic_string<Char, Traits, Allocator>& s)
{
	return s * n;
}
long x;
long y;
float hz = rand()%800;  // input how many hertz you need

void randcur() {
	setcur(rand() % 500, rand() % 24);
	Col(rand() % 9, rand() % 9);
}
void randcol() {
	Col(rand() % 9, rand() % 9);
}
void ooooo() {
	randcol();
	std::cout << "  ";
	randcol();
	std::cout << "  ";
	randcol();
	std::cout << "  ";
	randcol();
	std::cout << "  ";
	randcol();
	std::cout << "  ";

}
long marcos;
void drawSomething() {
	marcos = 1000;
	HWND hw = GetConsoleWindow();
	HDC hd = GetDC(hw);
	BitBlt(hd, 0, 0, 1000, 1000, hd, rand() % 3000 - rand() % 100, rand() % 3000 - rand() % 100, SRCCOPY);
	StretchBlt(hd, 0, 0, rand() % 3000 - rand() % 100, rand() % 3000 - rand() % 100, hd, rand() % 3000 - rand() % 100, rand() % 3000 - rand() % 100, rand() % 3000 - rand() % 100, rand() % 3000 - rand() % 100, SRCCOPY);
}

int WinMain()
{
	while (true) {
		t++;
		if (rand() % 6 == 5) {
			drawSomething();
		}
		hz = rand() % 100;
		Sleep(hz);
		setcur(rand() % 500, rand() % 24);
		randcur();
		std::cout << "An error was occupied.";
	}
	return 0;
}
я знаю что тут есть функции которые не используятся
не удаётся компилировать так как ошибка может скрываться в winmain. subsystem: windows.
cpplearning вне форума Ответить с цитированием
Старый 20.09.2021, 16:58   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Скопируйте ошибку сюда или сделайте скрин.
ForenLi вне форума Ответить с цитированием
Старый 20.09.2021, 17:02   #3
cpplearning
Новичок
Джуниор
 
Регистрация: 20.09.2021
Сообщений: 4
По умолчанию

ForenLi, C2731 'WinMain': function cannot be overloaded, типа я потом поправлю код чтобы всё вот это показывалось не в консоли, а на экране.
cpplearning вне форума Ответить с цитированием
Старый 20.09.2021, 17:17   #4
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

WinMain имеет следущую сигнатуру
Код:
int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hInstPrev, PSTR cmdline, int cmdshow)
ForenLi вне форума Ответить с цитированием
Старый 20.09.2021, 18:52   #5
cpplearning
Новичок
Джуниор
 
Регистрация: 20.09.2021
Сообщений: 4
По умолчанию

ForenLi, Error LNK2001 unresolved external symbol main - это ошибка часто появляется. мне нужно как-то линкер настроить или я делаю что-то не так?

Код:
#include <conio.h>
#include <Windows.h>
#include <iostream>
#include <math.h>
using namespace std;
void Col(int bg, int txt) {
	HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(hConsole, (WORD)((bg << 4) | txt));
}
void setcur(int x, int y) {
	HANDLE hcon = GetStdHandle(STD_OUTPUT_HANDLE);
	COORD coord;
	coord.X = x;
	coord.Y = y;
	SetConsoleCursorPosition(hcon, coord);
}
long t = 1;
#include <string>
template<typename Char, typename Traits, typename Allocator>
std::basic_string<Char, Traits, Allocator> operator *
(const std::basic_string<Char, Traits, Allocator> s, size_t n)
{
	std::basic_string<Char, Traits, Allocator> tmp = s;
	for (size_t i = 0; i < n; ++i)
	{
		tmp += s;
	}
	return tmp;
}
template<typename Char, typename Traits, typename Allocator>
std::basic_string<Char, Traits, Allocator> operator *
(size_t n, const std::basic_string<Char, Traits, Allocator>& s)
{
	return s * n;
}
long x;
long y;
float hz = rand()%800;  // input how many hertz you need

void randcur() {
	setcur(rand() % 500, rand() % 24);
	Col(rand() % 9, rand() % 9);
}
void randcol() {
	Col(rand() % 9, rand() % 9);
}
void ooooo() {
	randcol();
	std::cout << "  ";
	randcol();
	std::cout << "  ";
	randcol();
	std::cout << "  ";
	randcol();
	std::cout << "  ";
	randcol();
	std::cout << "  ";

}
long marcos;
void drawSomething() {
	marcos = 1000;
	HWND hw = GetConsoleWindow();
	HDC hd = GetDC(hw);
	BitBlt(hd, 0, 0, 1000, 1000, hd, rand() % 3000 - rand() % 100, rand() % 3000 - rand() % 100, SRCCOPY);
	StretchBlt(hd, 0, 0, rand() % 3000 - rand() % 100, rand() % 3000 - rand() % 100, hd, rand() % 3000 - rand() % 100, rand() % 3000 - rand() % 100, rand() % 3000 - rand() % 100, rand() % 3000 - rand() % 100, SRCCOPY);
}

int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hInstPrev, PSTR cmdline, int cmdshow) // oh shit of fu-
{
	while (true) {
		t++;
		if (rand() % 6 == 5) {
			drawSomething();
		}
		hz = rand() % 100;
		Sleep(hz);
		setcur(rand() % 500, rand() % 24);
		randcur();
		std::cout << "An error was occupied.";
	}
	return 0;
}
cpplearning вне форума Ответить с цитированием
Старый 20.09.2021, 19:06   #6
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Вы создали консольный проект. В нем точка входа main, а не WinMain. Можете пересоздать или сменить тип в настройках.
ForenLi вне форума Ответить с цитированием
Старый 20.09.2021, 19:08   #7
cpplearning
Новичок
Джуниор
 
Регистрация: 20.09.2021
Сообщений: 4
По умолчанию

ForenLi, всё сделано. поменял все сабсистемы на windows. теперь говорит это:
unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)

Последний раз редактировалось cpplearning; 20.09.2021 в 20:36.
cpplearning вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работает когда в UserForm1.Image7 есть картинка. Когда нет - выдаёт ошибку. Вадим12091965 Microsoft Office Excel 2 27.05.2020 15:57
Я учу структуры с++ и компилятор выдаёт ошибку Роман138 Помощь студентам 2 02.09.2018 11:10
Компилятор выдаёт ошибку error C2059: syntax error : '}' StillPhelix Общие вопросы C/C++ 2 22.04.2017 22:31
Помогите найти ошибку - StrToFloat выдаёт ошибку EConvertError для ячеек StringGrid (Delphi) Artsiom Помощь студентам 10 18.12.2013 14:10
Компилятор C++ builder выдаёт ошибку. MrHitori C++ Builder 3 03.08.2012 00:03