ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #4891  
Старый 22.02.2010, 00:32
BastardFromHell
Познающий
Регистрация: 05.02.2010
Сообщений: 59
Провел на форуме:
360122

Репутация: 41
По умолчанию

google GDI
 
Ответить с цитированием

  #4892  
Старый 22.02.2010, 01:03
agrofyl2
Познающий
Регистрация: 25.04.2008
Сообщений: 51
Провел на форуме:
146826

Репутация: 17
По умолчанию

Мне бы функцию чтоли... Я новичок сам врядли разберусь.
 
Ответить с цитированием

  #4893  
Старый 22.02.2010, 02:18
BastardFromHell
Познающий
Регистрация: 05.02.2010
Сообщений: 59
Провел на форуме:
360122

Репутация: 41
По умолчанию

Цитата:
Сообщение от agrofyl2  
Мне бы функцию чтоли... Я новичок сам врядли разберусь.
http://www.rsdn.ru/forum/winapi/3551012.flat.aspx
но принцип примерно такой
Код:
#include <windows.h>
#include <stdio.h>
extern "C" WINBASEAPI HWND WINAPI GetConsoleWindow (); 

int main()
{
	HWND hWindow = NULL;     // дескриптор окна
	HDC hDeviceContext;      // контекст устройства
	HPEN hPen;               // дескриптор пера
	HGDIOBJ hObject;         // дескриптор GDI объекта

	// получаем дескриптор окна
	hWindow = GetConsoleWindow();

	if (hWindow == NULL)
	{
		printf("Get console window failed.\n");

		return 1;
	}
	else
		printf("Cet console window is done.\n");

	// получаем контекст устройства
	hDeviceContext = GetDC(hWindow);
	// создаем перо
	hPen = CreatePen(PS_SOLID, 10, RGB(0, 255, 0));
	// устанавливает перо
	hObject = SelectObject(hDeviceContext, hPen);

	// рисуем x
	MoveToEx(hDeviceContext, 100, 200, NULL);
	LineTo(hDeviceContext, 200, 100);
	MoveToEx(hDeviceContext, 200, 200, NULL);
	LineTo(hDeviceContext, 100, 100);
	//y
	MoveToEx(hDeviceContext, 300, 200, NULL);
	LineTo(hDeviceContext, 400, 100);
	MoveToEx(hDeviceContext, 300, 100, NULL);
	LineTo(hDeviceContext, 350, 150);
	//й
    MoveToEx(hDeviceContext, 500, 100, NULL);
	LineTo(hDeviceContext, 500, 200);
	LineTo(hDeviceContext, 600, 100);
	LineTo(hDeviceContext, 600, 200);
	MoveToEx(hDeviceContext, 540, 50, NULL);
	LineTo(hDeviceContext, 560, 70);
	LineTo(hDeviceContext, 580, 50);

	// востанавливает старый объект
	SelectObject(hDeviceContext, hObject);

	// освобождаем объекты
	DeleteObject(hPen);
	ReleaseDC(hWindow, hDeviceContext);

	return 0;
}

Последний раз редактировалось BastardFromHell; 22.02.2010 в 02:45..
 
Ответить с цитированием

  #4894  
Старый 22.02.2010, 08:37
raven314
Новичок
Регистрация: 30.01.2009
Сообщений: 23
Провел на форуме:
39927

Репутация: 2
По умолчанию

ребят, с+/ подойдет для использования его в процессе программирования микросхем авр\пик ? или все же мне за ассемблер садиться ?
 
Ответить с цитированием

  #4895  
Старый 22.02.2010, 09:14
Ins3t
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
Провел на форуме:
2083691

Репутация: 330
По умолчанию

С подойдет.
 
Ответить с цитированием

  #4896  
Старый 22.02.2010, 13:25
agrofyl2
Познающий
Регистрация: 25.04.2008
Сообщений: 51
Провел на форуме:
146826

Репутация: 17
По умолчанию

BastardFromHell спасибо
Если кому надо вот что я накопал
Код:
void Draww(const char *string) {
	
	LOGFONT lf;
	HFONT hf;

	HDC hDeviceContext;      // контекст устройства
	//HPEN hPen;               // дескриптор пера
	HGDIOBJ old;         // дескриптор GDI объекта
	// получаем контекст устройства (0 - hwid рабочего стола)
	hDeviceContext = GetDC(0);

 	RtlZeroMemory(&lf, sizeof(lf));
	lstrcpyA(lf.lfFaceName, "Arial");
	lf.lfHeight = 42;
	lf.lfWeight = FW_NORMAL;
	lf.lfCharSet = RUSSIAN_CHARSET;
	hf = CreateFontIndirect(&lf);

	old = SelectObject(hDeviceContext, hf);
	RECT rectt;
	SetRect(&rectt, 0, 0, 1024, 768); 
	HANDLE h=CreateEvent(0, true, false, "et");
	DrawText(hDeviceContext, string, -1, &rectt, DT_LEFT);	
	
	WaitForSingleObject(h,1000);

	// востанавливает старый объект
	SelectObject(hDeviceContext, old);
	// освобождаем объекты
	DeleteObject(hf);
	ReleaseDC(0, hDeviceContext);
}
Функция просто выводит текст на экран в левом верхнем углу.
Только смотрите там строчка SetRect(&rectt, 0, 0, 1024, 768) экрано-зависимая, если надо то исправьте сами.

Последний раз редактировалось agrofyl2; 22.02.2010 в 17:19..
 
Ответить с цитированием

  #4897  
Старый 22.02.2010, 14:57
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

как обстоят дела в windows 7 с сырыми сокетами? Можно как-то завести их?
 
Ответить с цитированием

  #4898  
Старый 22.02.2010, 15:55
BastardFromHell
Познающий
Регистрация: 05.02.2010
Сообщений: 59
Провел на форуме:
360122

Репутация: 41
По умолчанию

сейчас хотел длинну массвива посчитать, чёт не вышло -
Код:
#include <cstdio>
#include <stddef.h>

int main(void)
{
	ptrdiff_t diff;
	int array[50];
	for(int i = 0; i<50; i++)
	{
		array[i]=i+1;
	}
	printf("first: %d, last: %d, firstptr: %p lastptr: %p\n",array[0], array[49], array, &array[49] );
	diff = &array[49] - &array[0];
	printf("arraysize is: %d , diff: %p, sizeof(int): %d", diff/sizeof(int), diff, sizeof(int));
	return 0;
}
вывод:
Код:
D:\dmc\bin>array_length.exe
first: 1, last: 50, firstptr: 0012FE7C lastptr: 0012FF40
arraysize is: 12 , diff: 00000031, sizeof(int): 4
гдё я туплю?

Последний раз редактировалось BastardFromHell; 22.02.2010 в 17:04..
 
Ответить с цитированием

  #4899  
Старый 22.02.2010, 17:33
Lee_fx
Познающий
Регистрация: 27.09.2008
Сообщений: 57
Провел на форуме:
265628

Репутация: 23
По умолчанию

похожу тут
diff/sizeof(int)
 
Ответить с цитированием

  #4900  
Старый 22.02.2010, 17:53
BastardFromHell
Познающий
Регистрация: 05.02.2010
Сообщений: 59
Провел на форуме:
360122

Репутация: 41
По умолчанию

Цитата:
Сообщение от ntldr  
как обстоят дела в windows 7 с сырыми сокетами? Можно как-то завести их?
Limitations on Raw Sockets

On Windows 7, Windows Server 2008 R2, Windows Vista, and Windows XP with Service Pack 2 (SP2), the ability to send traffic over raw sockets has been restricted in several ways:

TCP data cannot be sent over raw sockets.
UDP datagrams with an invalid source address cannot be sent over raw sockets. The IP source address for any outgoing UDP datagram must exist on a network interface or the datagram is dropped. This change was made to limit the ability of malicious code to create distributed denial-of-service attacks and limits the ability to send spoofed packets (TCP/IP packets with a forged source IP address).
A call to the bind function with a raw socket is not allowed.
ты гуглить не умеешь чтоли?
сурс - http://msdn.microsoft.com/en-us/library/ms740548(VS.85).aspx
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP, PERL, MySQL, JavaScript 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT.XYZ