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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2017, 17:36   #1
Екатерина57
Пользователь
 
Регистрация: 11.10.2015
Сообщений: 63
По умолчанию Помогите устранить ошибки в коде

Код:
#include <windows.h>
BOOL RegClass(WNDPROC,LPCTSTR,UINT);
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE hlnstance;
char	szClass[]="TextOutClass";


int WINAPI WinMain(HINSTANCE hlnstance,
HINSTANCE hPrevlnstance,LPSTR IpszCmdLine, int nCmdShow)
{MSG msg; HWND hwnd; ::hlnstance=hlnstance;
if(!RegClass(WndProc,szClass,COLOR_WINDOW))
return FALSE;
	hwnd=CreateWindow(szClass,"Âûâîä òåêñòà",
		WS_OVERLAPPEDWINDOW | WS_VISIBLE,
		CW_USEDEFAULT,CW_USEDEFAULT,
		CW_USEDEFAULT,CW_USEDEFAULT,
		0,0, hlnstance,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=CS_HREDRAW | CS_VREDRAW;
		wc.cbClsExtra=wc.cbWndExtra=0;wc.lpfnWndProc=Proc;
		wc.hlnstance=hlnstance; wc.lpszClassName=szName;
		wc.hlcon=Loadlcon(NULL,IDI_APPLICATION);
		wc.hCursor=LoadCursor(NULL,IDC_ARROW);
		wc.hbrBackground=(HBRUSH)(brBackground+1);
		wc.lpszMenuName=NULL;	return (RegisterClass(&wc)!=0;
	}
LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,
WPARAM wParam,LPARAM IParam)
	{ char	szFont[]="	Ïîãîäà áûëà ñîëíå÷íîé";
	static	short cyClient;
	switch(msg)
		{case WM_SIZE:	{cyClient=HIWORD(IParam);return 0;}
		case WN_PAINT:
			{	PAINTSTRUCT	ps;
			HDC hdc=BeginPaint(hwnd,&ps);
			static LOGFONT if;
			if.ifCharSet=DEFAULT_CHARSET;
			if.ifPitchAndFamily=DEFAULT_PITCH;
			strcpy(if.ifFaceName,"Times New Roman");
			if.ifHeight=20; if.ifWeight=FW_BOLD;
			for(int i=0;i<10;i++)
				{if.ifOrientation=if.ifEscapement=i*100;
				HFONT hNFont=CreateFontlndirect(&if);
				HFONT hOFont=(HFONT)SelectObject(hdc,hNFont);
				SetTextColor(hdc,RGB(i*15,i*20,i*25));
				SetBkColor(hdc,RGB(255-i*15,255-i*20,255-i*25));
				TextOut(hdc,0,cyClient-30,szFont,strltn(szFont));
				SelectObject(hdc,hOFont);
				DeleteObject(hNFont);
			}
			EndPaint(hwnd,&ps);
			return 0;
			case WM_DESTROY:{PostQuitMessage(0);return 0;}
		}
		return DefWindowProc(hwnd,msg,wParam,IParam);
	}
				break;
			}
				}
			
			}
		}
	}
Екатерина57 вне форума Ответить с цитированием
Старый 31.05.2017, 17:42   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Начните с:
1. Как вы определили, что ошибки есть?
2. Что вам написал компилятор?
3. Что вы исправили из того, что написал компилятор?
4. Какие настройки у проекта? Юникод?
p51x вне форума Ответить с цитированием
Старый 31.05.2017, 17:53   #3
Екатерина57
Пользователь
 
Регистрация: 11.10.2015
Сообщений: 63
По умолчанию

Впервые столкнулась с winapi,честно даже не знаю как их исправлять
Изображения
Тип файла: png Снимок.PNG (52.8 Кб, 134 просмотров)
Екатерина57 вне форума Ответить с цитированием
Старый 31.05.2017, 18:11   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

С чтения справки + логика или более лучшего скана книги.

У вас куча мест с опечатками. Перепутаны l и I (например, hlnstance и hlcon это же насколько надо себя не уважать, чтобы это не понять?..), WN вместо WM,
Код:
static LOGFONT if;
очевидно, что такого не может быть и там lf
p51x вне форума Ответить с цитированием
Старый 31.05.2017, 22:16   #5
Екатерина57
Пользователь
 
Регистрация: 11.10.2015
Сообщений: 63
По умолчанию

Я исправила,но он все равно выдает много ошибок
извините меня за мою глупость,но я не разбираюсь по коду
Код:
#include <windows.h>
BOOL RegClass(WNDPROC,LPCTSTR,UINT);
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE hInstance;
char	szClass[]="TextOutClass";


int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevinstance,LPSTR IpszCmdLine, int nCmdShow)
{MSG msg; HWND hwnd; ::hInstance=hInstance;
If(!RegClass(WndProc,szClass,COLOR_WINDOW))
return FALSE;
	hwnd=CreateWindow(szClass,"Âûâîä òåêñòà",
		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=CS_HREDRAW | CS_VREDRAW;
		wc.cbClsExtra=wc.cbWndExtra=0;wc.lpfnWndProc=Proc;
		wc.hInstance=hInstance; wc.lpszClassName=szName;
		wc.hicon=Loadlcon(NULL,IDI_APPLICATION);
		wc.hCursor=LoadCursor(NULL,IDC_ARROW);
		wc.hbrBackground=(HBRUSH)(brBackground+1);
		wc.lpszMenuName=NULL;	return (RegisterClass(&wc)!=0;
	}
LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,
WPARAM wParam,LPARAM IParam)
	{ char	szFont[]="	Ïîãîäà áûëà ñîëíå÷íîé";
	static	short cyClient;
	switch(msg)
		{case WM_SIZE:	{cyClient=HIWORD(IParam);return 0;}
		case WM_PAINT:
			{	PAINTSTRUCT	ps;
			HDC hdc=BeginPaint(hwnd,&ps);
			static LOGFONT If;
			If.IfCharSet=DEFAULT_CHARSET;
			If.IfPitchAndFamily=DEFAULT_PITCH;
			strcpy(If.IfFaceName,"Times New Roman");
			If.IfHeight=20; If.IfWeight=FW_BOLD;
			for(int i=0;i<10;i++)
				{If.IfOrientation=If.IfEscapement=i*100;
				HFONT hNFont=CreateFontlndirect(&If);
				HFONT hOFont=(HFONT)SelectObject(hdc,hNFont);
				SetTextColor(hdc,RGB(i*15,i*20,i*25));
				SetBkColor(hdc,RGB(255-i*15,255-i*20,255-i*25));
				TextOut(hdc,0,cyClient-30,szFont,strltn(szFont));
				SelectObject(hdc,hOFont);
				DeleteObject(hNFont);
			}
			EndPaint(hwnd,&ps);
			return 0;
			case WM_DESTROY:{PostQuitMessage(0);return 0;}
		}
		return DefWindowProc(hwnd,msg,wParam,IParam);
	}
Екатерина57 вне форума Ответить с цитированием
Старый 31.05.2017, 22:33   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Вы издеваетесь?
1. Вас не хватило понять, что здесь
Код:
wc.hicon=Loadlcon(NULL,IDI_APPLICATION);
как минимум две ошибки? Тем более вам о них уже говороли.
2. Мы должны угадывать какие ошибки?
3. Исправляйте опечатки дальше: CreateFontlndirect - что за lndirect вместо Indirect?
p51x вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибки в коде lomik222 Общие вопросы C/C++ 5 11.03.2016 09:51
Помогите устранить ошибку в готовом коде Konsyello Общие вопросы C/C++ 4 08.11.2013 23:26
Нужно устранить ошибки в коде (C++) Wolf6666 Помощь студентам 0 12.06.2012 16:54
Устранить ошибку в коде Divoha Общие вопросы C/C++ 11 27.06.2009 15:13