HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 20.04.2009, 14:08
Plaxxx
Новичок
Регистрация: 01.11.2008
Сообщений: 10
С нами: 9223248

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

Вообще этот код должен сравнивать один имейдж с другим... и еще вопрос есть сетка собранная из девяти имейдже как сделать так чтобы ее видно было после компиляции?

Последний раз редактировалось Plaxxx; 20.04.2009 в 14:15..
 
Ответить с цитированием

  #2  
Старый 20.04.2009, 15:41
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
С нами: 10535289

Репутация: 107


По умолчанию

Подскажите какая тут ошибка
Код:
main()
{
HANDLE hpR1,hpR2,hpW1,hpW2;
DWORD readsz,rb,wb;
char buff[1024*5];
char *buf=new char[(1024*1024)*4];
SECURITY_ATTRIBUTES sec =
{
(DWORD)sizeof(SECURITY_ATTRIBUTES), NULL, TRUE
};
STARTUPINFO sInfo;
PROCESS_INFORMATION pInfo;
CreatePipe(&hpR1,&hpW1,&sec,0);
CreatePipe(&hpR2,&hpW2,&sec,0);
memset(&sInfo, 0, sizeof(sInfo));
memset(&pInfo, 0, sizeof(pInfo));
sInfo.cb=sizeof (STARTUPINFO);
sInfo.dwFlags=STARTF_USESHOWWINDOW+STARTF_USESTDHANDLES;
sInfo.wShowWindow=SW_HIDE;
sInfo.hStdInput = hpR2;
sInfo.hStdOutput = hpW1;
sInfo.hStdError = hpW1;
CreateProcess(NULL,"cmd",&sec,&sec,true,0,NULL,NULL,&sInfo,&pInfo);
for(;;)
{
memset(buf,NULL,strlen(buf));
for(;;)
{
Sleep(300);
PeekNamedPipe(hpR1,NULL,NULL,NULL,&readsz,NULL);
memset(buff,NULL,(1024)*5);
if(readsz==0){break;}
ReadFile(hpR1,buff,(1024)*5,&rb,0);
strcat(buf,buff);
}//
printf("%s",buf);
memset(buf,NULL,strlen(buf));
cin>>buf;strcat(buf,"\n");
WriteFile(hpW2,buf,strlen(buf),&wb,0);
if(strcmp(buf,"exit\n")==0){break;}
}
delete []buf;
CloseHandle(hpR1);CloseHandle(hpR2);CloseHandle(hpW1);CloseHandle(hpW2);
}
Неполучается выполнять неодиночные команды с доп.параметрами
Цитата:
C:\>cd windows
cd
C:\

C:\>windows
"windows" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

C:\>
Голову ломаю ,немогу понять что не так
 
Ответить с цитированием

  #3  
Старый 21.04.2009, 00:11
Plaxxx
Новичок
Регистрация: 01.11.2008
Сообщений: 10
С нами: 9223248

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

есть код Image1->Canvas->CopyRect(Image1->ClientRect, Pict->Canvas,
Rect(0,0,Pict->Width / 3,Pict->Height / 3)); как ему значение присвоить ???
 
Ответить с цитированием

  #4  
Старый 21.04.2009, 11:39
Glazz
Участник форума
Регистрация: 09.08.2008
Сообщений: 139
С нами: 9344432

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

Цитата:
Сообщение от Plaxxx  
есть код Image1->Canvas->CopyRect(Image1->ClientRect, Pict->Canvas,
Rect(0,0,Pict->Width / 3,Pict->Height / 3)); как ему значение присвоить ???
дак Rect(); - это же метод. Методу нельзя присвоить значение.
 
Ответить с цитированием

  #5  
Старый 21.04.2009, 02:21
-m0rgan-
Постоянный
Регистрация: 29.09.2008
Сообщений: 553
С нами: 9270510

Репутация: 519


По умолчанию

Вот начал С++ учить...
Как там работать с сетью?
Нуда послать запрос и вывести ответ.
Ну кароче хочю написать сплойт под php двиг, но я извращенец и хочу сделать єто на С++
Зарание спасибо!
 
Ответить с цитированием

  #6  
Старый 21.04.2009, 10:51
--StraNger--
Познающий
Регистрация: 04.01.2009
Сообщений: 94
С нами: 9131159

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

Цитата:
Сообщение от -m0rgan-  
Вот начал С++ учить...
Как там работать с сетью?
Нуда послать запрос и вывести ответ.
Ну кароче хочю написать сплойт под php двиг, но я извращенец и хочу сделать єто на С++
Зарание спасибо!
да для начала разберись с сокетами (WinSock)
Я лично изучал их по книге фленова (программирование в с++ глазами хакера)
сама книга не очень, но про сокеты там хорошо расписано, с примерами.
А что бы написать сплоит нужно учиться посылать заросы на хост, опять же с использованием сокетов
 
Ответить с цитированием

  #7  
Старый 21.04.2009, 10:13
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

#include <winsock2.h> подрубаеш
а дальше юзаеш стандартные сокеты, команды во всехя зыках одинаковые.
Советую прочитать статейку : Крис Касперски - Побег через брандмаузер
Хотябы тут http://www.insidepro.com/kk/016/016r.shtml
Довольно всё понятно при работе с сокетами
 
Ответить с цитированием

  #8  
Старый 22.04.2009, 10:25
ss88
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
С нами: 9185589

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

Код:
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct tree_item_tag {
	const char * word; 
	size_t count;
	struct tree_item_tag *left, *right;
} tree_item_t;
/* insert keyword into tree or incrementing of word count. */
void insert(tree_item_t** first_item, const char* keyword) {
	tree_item_t** pcur = first_item; /* pointer on current tree item */
	int cmp_words;
	while (*pcur != NULL) { /* searching for already inserted word inc count */
		cmp_words = strcmp(keyword, (*pcur)->word);
		if(cmp_words == 0) {
			++(*pcur)->count;
			return;
        }  
		pcur=(cmp_words<0) ? &((*pcur)->left) : &((*pcur)->right);
    } /* it is the first insert of this word */
	*pcur = malloc( sizeof(tree_item_t) );
    (*pcur)->word = strcpy( malloc( strlen(keyword) + 1) , keyword);
    (*pcur)->count = 1;
    (*pcur)->left = (*pcur)->right = NULL;  
}
void print(tree_item_t* tree_item) {
	if (tree_item == NULL) return;
	print(tree_item->left);
	(void)printf("%s %d\n",tree_item->word, tree_item->count);
	print(tree_item->right);
}
/* Get word from STDIN and return it in WORD_BUF */
int get_word(char * buf_word, size_t buf_size) {
	int c; /* current read symbol */
	size_t word_len = 0;
	while( (c=getchar()) != EOF) {
		if(isalpha( (unsigned char) c) || (word_len > 0 && c == '\'')) {
			buf_word[ word_len++ ] = (unsigned char) tolower(c);
			if(word_len + 1 == buf_size) break; /* return only part of word */
		} else if(word_len > 0) break; /* word can be returned */
	}  
	if(word_len > 0) {
		buf_word[ word_len ]= '\0';
		return 1;
	} else return 0;
}
int main(void) {
	tree_item_t *first_item = NULL;
	size_t buf_size = 50; /* must be bigger than 1 */
	char * buf_word = malloc(buf_size);
	while(get_word(buf_word, buf_size)) 
		insert(&first_item, buf_word);
	print(first_item);
	return EXIT_SUCCESS;
}
Вот такой код. вобщем, из входного потока читается текст, разбивается на слова и заносится в бинарное дерево... Собственно, нужно сделать нерекурсивный вывод, шота голова уже не думает, помогите, плиз
 
Ответить с цитированием

  #9  
Старый 24.04.2009, 18:05
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
С нами: 9394886

Репутация: 1467


По умолчанию

ss88,Не люблю копаться в чужих кодах.... Давай на словах. Имеется в виду, что надо сосканировать предложение, разбить на слова и... а дальше чо? "Заностится в бинарно дерево" по какому принципу? Если просто слова по-порядку, то просто забить слова в структуру (массив), а дальше их печатать в виде дерева (всмысле в каждой строке увеличиваем колличество распечатываемых слов в 2 раза). В этом коде слишком муторно разбираться...
 
Ответить с цитированием

  #10  
Старый 26.04.2009, 16:39
ss88
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
С нами: 9185589

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

Цитата:
Сообщение от KaZ@NoVa  
ss88,Не люблю копаться в чужих кодах.... Давай на словах. Имеется в виду, что надо сосканировать предложение, разбить на слова и... а дальше чо? "Заностится в бинарно дерево" по какому принципу? Если просто слова по-порядку, то просто забить слова в структуру (массив), а дальше их печатать в виде дерева (всмысле в каждой строке увеличиваем колличество распечатываемых слов в 2 раза). В этом коде слишком муторно разбираться...
Судя по тем кодам, что пишут в этой теме, мой код, действительно, совсем другой, не сказал бы, что он плохой... Слова добавлялись в дерево, вполне логично, по сравнению строк на больше/меньше. Никаких стеков, массивов нельзя - это глупо, да и на это стоит ограничение, просто, в данном случае, память является самым критичным ресурсом, поэтому разрастание стека при рекурсии - недопустимая роскошь. Привожу код с нерекурсивным обходом (не самый эллегантный алгоритм, но все же...), может кому пригодится, потому что задача не самая тривиальная... Если кто захочет компилить, то это делать надо в 99-м стандарте С.
Код:
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct tree_item_tag {
	const char * word; 
	size_t count;
	struct tree_item_tag *left, *right, *parent;
} tree_item_t;

void insert(tree_item_t** first_item, const char* keyword, size_t * count) {
	
	tree_item_t** pcur = first_item, **prev =  first_item; 
	int cmp_words;
	
	while (*pcur != NULL) { /* searching for already inserted word inc count */
		if((cmp_words=strcmp(keyword, (*pcur)->word)) == 0) {
			++(*pcur)->count;
			return;
        }  
        prev = pcur;
		pcur=(cmp_words<0) ? &((*pcur)->left) : &((*pcur)->right);
    } /* it is the first insert of this word */
	*pcur = malloc( sizeof(tree_item_t) );
    (*pcur)->word = strcpy( malloc( strlen(keyword) + 1) , keyword);
    (*pcur)->count = 1;
    (*pcur)->parent = *prev;
    (*pcur)->left = (*pcur)->right = NULL;  
    ++(*count);
}

void printnotrec(tree_item_t* tree_item, size_t count) {
	
	size_t cur_count = 0;
	tree_item_t * pcur = tree_item, * pprev = pcur, *tmppcur;
	
	while(cur_count != count) {
		tmppcur = pcur;
		if( (pcur->left==NULL && pprev!=pcur->right)
		||pprev==pcur->left) {
			(void)printf("%s %d\n",pcur->word, pcur->count);
			++cur_count;
			if( pcur->right == NULL ) {
				if( pcur->parent->right == pcur ) {
					pprev = pcur->parent;
					pcur = pcur->parent->parent;
					continue;
				} else 
					pcur = pcur->parent;
			} else 
				pcur = pcur->right;
		}
		else {
			if(pprev == pcur->right)
				pcur = pcur->parent;
			else 
				pcur = pcur->left;
		}
		pprev = tmppcur;
	}
}

int get_word(char * buf_word, size_t buf_size) {
	
	int c; /* current read symbol */
	size_t word_len = 0;
	
	while( (c=getchar()) != EOF) {
		if(isalpha( (unsigned char) c) || (word_len > 0 && c == '\'')) {
			buf_word[ word_len++ ] = (unsigned char) tolower(c);
			if(word_len + 1 == buf_size) break; /* return only part of word */
		} else if(word_len > 0) break; /* word can be returned */
	}  
	if(word_len > 0) {
		buf_word[ word_len ]= '\0';
		return 1;
	} else return 0;
}

int main(void) {
	
	tree_item_t *first_item = NULL;
	size_t buf_size = 50; /* must be bigger than 1 */
	size_t count = 0;
	char * buf_word = malloc(buf_size);
	
	while(get_word(buf_word, buf_size)) 
		insert(&first_item, buf_word,&count);
	
	printnotrec(first_item,count);
	printf("%d\n",count);
	return EXIT_SUCCESS;
}

Последний раз редактировалось ss88; 26.04.2009 в 18:07..
 
Ответить с цитированием
Ответ



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



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


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




ANTICHAT ™ © 2001- Antichat Kft.