Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

Код:

#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,"&#194;&#251;&#226;&#238;&#228; &#242;&#229;&#234;&#241;&#242;&#224;",
		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[]="	&#207;&#238;&#227;&#238;&#228;&#224; &#225;&#251;&#235;&#224; &#241;&#238;&#235;&#237;&#229;&#247;&#237;&#238;&#233;";
	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, 18:42   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 10,359
Репутация: 1609

icq: 216409213
По умолчанию

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

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

icq: 216409213
По умолчанию

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

У вас куча мест с опечатками. Перепутаны l и I (например, hlnstance и hlcon это же насколько надо себя не уважать, чтобы это не понять?..), WN вместо WM,
Код:

static LOGFONT if;

очевидно, что такого не может быть и там lf
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 31.05.2017, 23:16   #5
Екатерина57
Форумчанин
 
Регистрация: 11.10.2015
Сообщений: 63
Репутация: 18
По умолчанию

Я исправила,но он все равно выдает много ошибок
извините меня за мою глупость,но я не разбираюсь по коду
Код:

#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,"&#194;&#251;&#226;&#238;&#228; &#242;&#229;&#234;&#241;&#242;&#224;",
		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[]="	&#207;&#238;&#227;&#238;&#228;&#224; &#225;&#251;&#235;&#224; &#241;&#238;&#235;&#237;&#229;&#247;&#237;&#238;&#233;";
	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, 23:33   #6
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 10,359
Репутация: 1609

icq: 216409213
По умолчанию

Вы издеваетесь?
1. Вас не хватило понять, что здесь
Код:

wc.hicon=Loadlcon(NULL,IDI_APPLICATION);

как минимум две ошибки? Тем более вам о них уже говороли.
2. Мы должны угадывать какие ошибки?
3. Исправляйте опечатки дальше: CreateFontlndirect - что за lndirect вместо Indirect?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибки в коде lomik222 Общие вопросы C/C++ 5 11.03.2016 10: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




06:30.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru