PDA

Просмотр полной версии : [c/c++] Новичкам: задаем вопросы


Страницы : 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

Ky3bMu4
11.02.2008, 19:10
xpicx.narod.ru/nor/normal.htm
Интересный метод.

KSoniX
11.02.2008, 19:11
а на других алгоритмах например RC5, RC6
спасибо и за этот код z01b но мне не надо алгоритмом сложения по модулю 2
извиняюсь я забил про хешфункции

Jes
11.02.2008, 19:18
MD5
MD5 - не шифрование а хеширование ...

xxxxxxxxxxxxxxx
11.02.2008, 19:20
скиньте кто то примерный код коннекта к к сайту на проверку его существования)
Ну допустим если вводиш ссылку оно конектитса и выводит слово "пашет" ну или " не пашет" буду очень благодарен.

Ky3bMu4
11.02.2008, 19:24
проверку его существования)

Имхо, для этого достаточно resolve-сделать и всё.

hostent *ht;
ht=gethostbyname("site.com");
if(ht==0) printf("site.com does`n exist!");
else printf("site.com is exist!");

_Great_
11.02.2008, 19:36
Кривовато. Например, для адреса "ofkshgkdhskghskfg.livejournal.com" он скажет что все ок, ибо резолв будет для любого поддомена) а вот контента там нет

KSoniX
11.02.2008, 19:41
даже можно на 3des или на любых алгоритмах в которых только один ключ
но без .net

Ky3bMu4
11.02.2008, 20:11
Например, для адреса "ofkshgkdhskghskfg.livejournal.com" он скажет что все ок

Ну тогда уж если так дотошно проверять, то точно достоверно определить есть сайт на домене или нет невозможно, домен ofkshgkdhskghskfg.livejournal2.com и резольвится хорошо и 404 от сервака мы не получим.

struct hostent *ht;
struct sockaddr_in so;
int s,hconnect;
char *pack=(char*)malloc(1024);
if(pack!=0){
if(argc>0){
ht=gethostbyname(argv[1]);
if(ht==0) printf("%s does`n exist!\r\n",argv[1]);
else{
printf("%s exist!\r\n",argv[1]);
so.sin_family = AF_INET;

memcpy((char*)&so.sin_addr , ht->h_addr, ht->h_length);

so.sin_port = htons(80);

s= socket( AF_INET, SOCK_STREAM, 0 );

hconnect= connect( s, (struct sockaddr*)&so, sizeof( so ) );

if(hconnect!=-1)
{

printf("Successfully connected to %s\r\n\r\n",argv[1]);
sprintf(pack,"GET / HTTP/1.1\r\nHost: %s\r\nConnection: Close\r\n\r\n",argv[1]);
send(s,pack,1024,0);
memset(pack,0,1024);
recv(s,pack,1024,0);
printf("%s",pack);



}else printf("Can`t connect to %s\r\n",argv[1]);
}

}
}

KEZ
11.02.2008, 20:18
Кривовато. Например, для адреса "ofkshgkdhskghskfg.livejournal.com" он скажет что все ок, ибо резолв будет для любого поддомена) а вот контента там нет


проверить это невозможно. точно так же, как и ashdn82374ajlksdhaksdasedaj.narod.ru
DNS народа тебе скажет, что всё ок. и пошел куда нибудь на рекламную страницу.

nc.STRIEM
12.02.2008, 18:55
можно получать IP заведома несуществующего домена например hksdjhksdjfsdfkjsdhk.narod.ru и с равнивать с ip домена который надо проверять, например check.narod.ru есле они совпадают то несуществует. Такой способ работает не везде

KSoniX
14.02.2008, 16:39
как узнать в файле сколка элементов в типе unsigned long в Си?
или с какой функций можна узнать сколка весть файл в байтах?

Forcer
14.02.2008, 23:02
с какой функций можна узнать сколка весть файл в байтах?

функция -_filelength(int fd) , fd - дескриптор файла

Вот пример работы:

#include <io.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>

int main()
{
int fh;

if( (fh = _open( "E:\\chess.cpp", _O_RDONLY, _S_IREAD )) != -1 )
{
printf( "File length : %ld kb\n", _filelength( fh ) );
_close( fh );
}
else
printf("Cant open a file!\n");

return 0;
}

Так же в WinAPI есть функция DWORD GetFileSize( HANDLE hFile, LPDWORD lpFileSizeHigh). Схема работы - такая же как и в приведённом примере. Последним параметром можно NULL поставить.

P.S. согласен с iv., первая фраза непонятна.

iv.
14.02.2008, 23:06
как узнать в файле сколка элементов в типе unsigned long в Си?
о_О Вопрос слегка непонятен.

Delimiter
15.02.2008, 00:05
sizeof(unsigned long);

symbioin
17.02.2008, 19:12
в чем может быть проблема? к меня выбивает ошыбку

void Cmy1Dlg::OnBnClickedButton1()
{
MessageBox("Antichat");
}

vs 2005

zl0y
17.02.2008, 19:14
в чем может быть проблема? к меня выбивает ошыбку

void Cmy1Dlg::OnBnClickedButton1()
{
MessageBox("Antichat");
}

vs 2005
у данной апи 4 параметра заметь

MessageBox(0,"Antichat","Рулит!",0);

z01b
17.02.2008, 19:32
полюбому :(
#include "windows.h" есть?

Kaimi
17.02.2008, 23:10
При попытке скомпилить прогу, борланд выдает
[Linker Error] Unresolved external 'WSAConnect' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ

Подскажите как это исправить? Вроде с инклудами все нормально и библиотеки соответствующие присутствуют

desTiny
17.02.2008, 23:43
#775 'WSAConnect' - такого нет. Есть 'WSAStartup' и 'connect'

Kaimi
17.02.2008, 23:50
Да ладно? А это что тогда: http://msdn2.microsoft.com/en-us/library/ms741559(VS.85).aspx
?

desTiny
18.02.2008, 00:03
В первый раз вижу... Всё равно, попробуй просто connect...

KSoniX
18.02.2008, 14:54
Сообщение от symbioin
полюбому
попробуй этот код у миня нормально компилируется vs2005

#include<windows.h>

int main()
{
TCHAR* text=TEXT("Antichat"),*kep=TEXT("Рулит!");

MessageBox(0,text,kep,0);
return 0;
}

атак можеш использовать MessageBoxA(0,(LPCSTR)"Antichat",(LPCSTR)"Рулит!",0);

krypt3r
18.02.2008, 15:33
При попытке скомпилить прогу, борланд выдает
[Linker Error] Unresolved external 'WSAConnect' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ

Подскажите как это исправить? Вроде с инклудами все нормально и библиотеки соответствующие присутствуют

Хедер winsock2.h подключен? Перед вызовом WSAConnect стоит вызов WSAStartup?
Ну и в конце кода должно быть WSACleanup

nitx
19.02.2008, 16:41
Подскажите как сделать на С. Кароче нужно перепробовать все значения числа, переставляя цифры. Причем неизвестно из скольки цифер состоит число.
Например, в переменной задано число 21, его нужно прочитать как 1, 2, 12, 21.
P.s. я в С нуб :(

Xserg
20.02.2008, 12:19
Подскажите как сделать на С. Кароче нужно перепробовать все значения числа, переставляя цифры. Причем неизвестно из скольки цифер состоит число.
Например, в переменной задано число 21, его нужно прочитать как 1, 2, 12, 21.
P.s. я в С нуб :(
Вообще это алгоритм перебора паролей из выбранного набора символов для брутера
Их есть много у меня
Медленный, но удобный:
#define MAXstr 256
#define MAXsymbol 10
#define initdata(X,Y,Z) for(int x=0;x<(Y);x++) X[x]=Z
int i;
char s[MAXstr];
sprintf((char *)&s,"%d",1221);

int is[MAXsymbol];initdata(is,MAXsymbol,0);
int length=0;
char sall[MAXsymbol];
for (i=0;s[i]!=0;i++) is[s[i]-'0']=1;
for (i=0;i<MAXsymbol;i++) if (is[i]==1) {sall[length]='0'+i;length++;};sall[length]=0;
printf("integer %s = %s \n",s,sall);

int size=1;
int sizeold=size;
char data[MAXsymbol],str[MAXstr];
#define incarray(X) data[X]++;if (data[X]==length) { data[X]=0; if (size<(X+2)) size++

initdata(data,MAXsymbol,0);
while (size<length+1) {

for (i=0;i<MAXsymbol;i++) if (i<size){str[i]=sall[data[i]];}else{str[i]=0;}
printf(" %s ",str);

//hands make
incarray(0);incarray(1);incarray(2);incarray(3);in carray(4);
incarray(5);incarray(6);incarray(7);incarray(8);in carray(9);
}}}}}}}}}}// array to MAXsymbol
if (sizeold!=size) {initdata(data,MAXsymbol,0); sizeold=size; printf("\n");}
}//while (size<length+1)

integer 1221 = 12
1 2
11 21 12 22

P.s.
//hands make
incarray(0);incarray(1);incarray(2);incarray(3);in carray(4);
incarray(5);incarray(6);incarray(7);incarray(8);in carray(9);
}}}}}}}}}}// array to MAXsymbol
Можно заменить на автомат:
for (int X=0;X<MAXsymbol;X++) {
data[X]++;if (data[X]==length) { data[X]=0; if (size<(X+2)) size++; } else break;
}

KSoniX
21.02.2008, 19:36
Pls.у каго ест примеры передача данных с помошью инет и как создать сервер и клиента с помошью API или в Си?

Forcer
21.02.2008, 19:40
KSoniX
Посмотри здесь:
http://ishodniki.ru/

Loker
22.02.2008, 16:38
Есть у когонибудь исходник сканера на уязвимости на С++? Или где можно прочитать про работу с сайтами на С++? Прошу если неграмотно выразился сильно не ругать..

Smapt
22.02.2008, 18:09
Можноли в Билдере в ячейку StringGrid поместить веб-ссылку, при нажатии на которую будет открыватся страница в браузере?

Jes
22.02.2008, 18:56
Или где можно прочитать про работу с сайтами на С++?
Обычный Winsock + протокол http ...

http://old.antichat.ru/crackchat/HTTP/http.html
http://ru.wikipedia.org/wiki/HTTP

Loker
23.02.2008, 02:43
Jes спс тебе с этим я более мение разобрался. А ни у кого нету исходничка на С++ на подбор таблиц, или столбцов?

Smapt
24.02.2008, 02:05
Как в Buildere при работе с idHTTP1 избавится от ошибки EIdsocketerror #10054

А ещё лучше скажите как сделать чтоб при поевлении любой ошибки оно писало что произошла ошибка и продлжоло работу дальше, а не завергало приложение.

thetuk
24.02.2008, 14:18
Подскажите пжалста.
Как получить картинку с сервера?
делаю следующее...
char url[] = "/i/switch-yaru.png";char host[] = "img.yandex.ru";
sprintf( request, "GET %s HTTP/1.1\r\nAccept: image/png, image/gif\r\nHost: %s\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\nConnection: Close\r\n\r\n", url, host );
send( s, request, strlen( request ), 0 );
recv( s, response, 1024*32, 0);

В результате получаю ответ сервера:


HTTP/1.1 200 OK
Connection: close
Expires: Tue, 22 Apr 2008 15:56:59 GMT
Cache-Control: max-age=5184000
Content-Type: image/png
Accept-Ranges: bytes
ETag: "490032732"
Last-Modified: Fri, 27 Jul 2007 11:27:33 GMT
Content-Length: 296
Date: Fri, 22 Feb 2008 15:56:59 GMT
Server: lighttpd/1.4.18

???Как получить саму PNG'ку???

bons
24.02.2008, 15:59
во-первых ты неправильно используешь функцию recv. Здесь лучше было бы принимать данные в цикле пока сервер не закроет соединение. Картинка будет идти сразу после заголовка http-ответа(конец ответа легко определить по последовательности \x0D\x0A\x0D\x0A)

если же лень писать правильно то после получения заголовка можешь просто вызвать
recv( s, response, 1024*32, 0);
еще раз, на этот раз там будет картинка

Minimus
25.02.2008, 05:52
у меня такая проблема : передаю проге в командной строке IP адрес,допустим 127.0.0.1,но когда начинаю заполнять структуру sockaddr_in, то оказывается что адрес равен 27.0.0.1, куда делся первый символ?
З.Ы. строка вида "proga 127.0.0.1 param1 param2"

thetuk
25.02.2008, 09:35
после получения заголовка можешь просто вызвать
recv( s, response, 1024*32, 0);
еще раз, на этот раз там будет картинка В этом и проблема. Response содержит 5 символов, при весе картинки 2Кб.
После второго вызова делаю:

ofstream f_gif;
f_gif.open("1.gif", ios::binary);
f_gif<<response;
f_gif.close();

???Или записывать в файл put'ом???

zythar
25.02.2008, 09:54
не. ну почему все перешли на этот си++? хз какая хрень..
делай recv в цикле. насколько я знаю функция возвращяет сколько байтов она прочитала.
получается так.
while (bytes=recv(s, response, 1024)>0) {
d=open("file", O_RDRW);
write(d, response, bytes);
}
так по идее должно получится

Delimiter
25.02.2008, 16:23
не. ну почему все перешли на этот си++? хз какая хрень..
делай recv в цикле. насколько я знаю функция возвращяет сколько байтов она прочитала.
получается так.
while (bytes=recv(s, response, 1024)>0) {
d=open("file", O_RDRW);
write(d, response, bytes);
}
так по идее должно получится

... да потому что такими циклами самими по себе не сделать мало мальски хорошую программу, всем приходится привыкать к реалиям мастдая. Если цикл значит новая нитка(thread).... далее по Рихтеру и С++
а если не нитка а асинхронные сокеты, то далее по Win32socket.faq и С++!

LynXzp
25.02.2008, 20:11
Ламерский вопрос по С++ (Borland Turbo C++)
Возникает событие во второй форме (Unit2.cpp), как заставить выполнятся код, который находится в первой форме (Unit1.cpp) (функцию ну или другое событие).

(Думал создать невидимый чекбокс и нажимать его - но это как-то не правильно) :)

zythar
25.02.2008, 23:24
сделать функцию в первой форме и при возникновении событии во второй форме вызывать эту функцию?

вначале сделай хидер Unit1.h там опиши функцию, потом имплементацию функции в Unit1.cpp.
дальше инклуди Unit1.h в Unit1.cpp и Unit2.cpp и при событии вызывай ф-цию из Unit1.cpp. посмотрим что произойдет.
несколько абстрактный пример

Unit1.h

int event_handler(int arg);


Uni1.cpp

#include "Unit1.h"

int event_handler(int arg);
{
...
}


Unit2.cpp

#include "Unit1.h"

int main(int argc, char *argv[])
{ ...
if(event) {
event_handler(event);
};
...
}

LynXzp
26.02.2008, 00:31
Я что-то протупил. Так пробовал (не работало) - решил еще раз сделать чтобы конкретно сказать что говорит компилятор (интуитивно догадываюсь, но хотелось бы уточнить.. :)).
В общем заработало. (черт его знает - видимо была опечатка)

symbioin
26.02.2008, 04:20
помогите найти скрипт создания md5

Garfi
26.02.2008, 14:36
Занимаюсь С++, не могу понять в чем ошибка?

Программа должна считать ср. арифм. 2-х чисел (переменной - а, и переменной - b)

Вот иходник:

#include <iostream.h>

void main ()
{
int a;
cout<<"vvedite pervoe chislo\n";
cin>>a;
int b;
cout<<"vvedite vtoroe chislo\n";
cin>>b;
int c;
c=(a+b)/2;
cout<<"srednee arifmeticheskoe="<<c;cout"\n";
}

Компилятор Visual C++ 6.0 выдает ошибку:

"c:\program files\microsoft visual studio\myprojects\dz\srednee_arifmeticheskoe_dvuh_ chisel\source.cpp(13) : error C2143: syntax error : missing ';' before 'string'
Error executing cl.exe."

Jes
26.02.2008, 14:53
cout<<"srednee arifmeticheskoe="<<c;cout<<"\n";

zythar
26.02.2008, 15:29
symbioin
тут ты ответа на этот вопрос не найдешь. никто не может написать СКРИПТ на си/си++ ибо не существует интерпретатора языка си.

во вторых ты не можешь СОЗДАТЬ md5. ты можешь сгенерировать md5 хеш.

в третиьх. я не знаю ((*

Jes
26.02.2008, 15:38
2 > symbioin
http://ishodniki.ru/art/artshow.php?id=233

Smapt
28.02.2008, 20:13
Где почтать про работу Client сокетов в многопоточном режиме? (с++)

nerezus
28.02.2008, 20:26
Где почтать про работу Client сокетов в многопоточном режиме? (с++) В документации к используемым фреймворкам/библиотекам либо в документации ОС, если не используются библиотеки и фреймворки.

Delimiter
28.02.2008, 21:22
Непонятен вопрос..... а что там читать ??? Там не пахнет никакими семафорами и другими средствами синхронизации. Сокет понятие уникальное для сессии. На каждый поток обычно уникальный сокет.... то есть нитка не видит что сокетов много , у нее он СВОЙ.

..... есть только один вариант в который СТРАШНО верить потоков много а сокет один, неужели ты это имел ввиду??? Но насколько я знаю винсокдлл.... она все запросы вси рафно ставит в очередь.... коллизий в ней не будет. Критические секции тоже не стоит ставить на recv и send для одного "глобального" сокета.... для систем с вытесняющей многозадачностью эти команды не разбиваются на составные части.... а выполняются как ОДНО-ЦЕЛОЕ, то есть все равно ктото будет первым а ктото вторым!

Meanor
01.03.2008, 01:03
Добрый день,

начал изучение с++, но появился очень простой вопрос, на который, к сожалению, в гугле одназначно ответить не могут... Вопрос такой: "Где лучше прописыватть методы класса, в нем или вне его?" Вроде удобнее первый, но так нигде не пишут :(.

Спасибо за внимание, уделенное моему вопросу.

Delimiter
01.03.2008, 01:09
пишут и так и так встречал оба варианта.... поэтому как нравится.... вот к примеру мне не нраивтся ООП ваапще.... дык я и не "кашляю" даже 8))))

... доходит до смешного, если мну нужен код.... я выдираю из классов и делаю понятные только мне функции и структуры

Forcer
01.03.2008, 02:09
Меня лично учили так(Дейтелы пишут также): нужно отделять определение(интерфейс) от реализации. В объявлении класса не должна находиться реализация методов. Т.е. внутри определения класса - только прототипы методов. Класс - это конечный программный продукт. Клиентам, которые пользуются классом, совсем не обязательно видеть, как реализованы методы. Им нужно знать какими методами можно воспользоваться и какие результаты будут получены. Поэтому внутри класса методы должны находиться в следующем порядке: сначала public, далее protected, и лишь потом private.
Цитата из Дейтелов: Информация, являющаяся важной для интерфейса класса, должна включаться в заголовочный файл. Информация, которая будет использоваться только внутри класса и не потребуется клиентам, должна находиться в неопубликованном исходном файле. Это еще один пример принципа минимума привилегий. Клиентам класса не обязательно видеть его исходный код для того, чтобы пользоваться этим классом.Однако клиентам необходимо иметь возможность компоноваться с объектным кодом класса. Т.е. для класса создаем 2-а файла: .cpp(с реализацией методов) и .h(с объявлением класса). В свои включаем хедер, проект собираем вместе с файлом .cpp. Это не касается встроенных функций. Они должны находиться в объявлении класса. И ещё нужно использовать директивы препроцессора #ifndef, #define, #endif чтобы не допускать повторного включения заголовочных файлов.

P.S. Страуструп: Хорошо спроектированный тип, определяемый пользователем, отличается от встроенного только тем, как он определён, а не тем, как он исползуется.

Meanor
01.03.2008, 02:44
Меня лично учили так(Дейтелы пишут также): нужно отделять определение(интерфейс) от реализации. В объявлении класса не должна находиться реализация методов. Т.е. внутри определения класса - только прототипы методов. Класс - это конечный программный продукт. Клиентам, которые пользуются классом, совсем не обязательно видеть, как реализованы методы. Им нужно знать какими методами можно воспользоваться и какие результаты будут получены.

Спасибо, т.е. все уперается в инкапсюляцию...

А вот конструкторы и деструкторы описываются в теле класса?

Forcer
01.03.2008, 03:13
Нет. Вся реализация, в том числе конструкторов и деструкторов, вне объявления класса. Хотя если вы пишите небольшой класс, возможно и не стоит строго следовать всем канонам, но зато это войдёт у вас в привычку.

nerezus
01.03.2008, 11:15
Меня лично учили так(Дейтелы пишут также): нужно отделять определение(интерфейс) от реализации. В объявлении класса не должна находиться реализация методов. Т.е. внутри определения класса - только прототипы методов. Класс - это конечный программный продукт. Клиентам, которые пользуются классом, совсем не обязательно видеть, как реализованы методы. Им нужно знать какими методами можно воспользоваться и какие результаты будут получены. Справедливо только для C++. ИМХО это крайне неправильно(ну в других языках даже такой возможности нет), но если так не делать, появится куча ошибок при создании проекта, когда один класс используется в нескольких.
Связано с тем, что в С++ нельзя скомпилить файл, не зная прототипов.

Shawn1x
01.03.2008, 13:25
Где можно скачать исходники джойнера на С++?

SHLAK
01.03.2008, 18:35
Есть ли у кого нибудь исходники калькулятора на С++?

brasco2k
02.03.2008, 18:55
Помогите написать такой код на C#:
Чтобы на каждый тик таймера выделялась следующая буква из текстогого поля...

Darkor
02.03.2008, 19:46
Нужна помощь в C#
Надо сделать таблицу как в excel'e
Скажем чтоб было 3 строки и 10 столбцов.
Подскажите плз.

Garfi
02.03.2008, 20:00
Есть ли у кого нибудь исходники калькулятора на С++?
это (http://ishodniki.ru/list/info.php?cat=6&id=7648&show=cpp_algoritms) подходит? :)

ForNeVeR
03.03.2008, 15:55
Подскажите пожалуйста, как в MS Visual C++ 2008 .NET сделать, чтобы 2 неких .h файла (например, 2 формы) могли получить доступ к классам друг друга? А то делаю в одном #include "file2.h", в другом #include "file1.h" - в итоге классы друг друга они не видят...

zythar
03.03.2008, 16:08
попробуй сделать один хидер там объявить класс. потом этот хидер инклудить в те два хидера.

ForNeVeR
03.03.2008, 16:14
Дело в том, что в моём случае в одном из этих хидеров и объявлен класс, которому нужен доступ к классу формы, объявленному в другом хидере. Причём источник ошибок для меня совершенно неясен: просто "не виден" в одном файле класс, объявленный в другом. Видимо, это как-то связано именно с тем, что файлы ссылаются друг на друга... Хотя #pragma once стоит в обоих и сообщений о достижении максимальной глубины вложеннности #include'ов (что происходит если её убрать ;) ) не появляется.

zythar
03.03.2008, 16:22
хз.. может че то перепутал при объявлении класса?
какая ошибка? ну и исходники в студию плз. я особо в с++ не силен, но посмотрим что можно сделать

ForNeVeR
03.03.2008, 16:31
Исходники длинные, но вот существенные части:
// CommonClass.h
#pragma once
#include "Form1.h"
//#include "CommonClass.cpp"

using namespace System;
// . . .
using namespace ICQ_client;

public ref class CommonClass{
// Объявления методов, параметров и т.д.
};

// Form1.h
#pragma once

#include "CommonClass.h"

using namespace System;
// . . .
namespace ICQ_client
{
public ref class Form1 : public System::Windows::Forms::Form
{
// . . .
CommonClass^ common; // Тут вылазит ошибка C2143: syntax error : missing ';' before '^', т.е. он не понимает, что CommonClass - это название класса.

//. . .
};
}

Причём если в CommonClass.h не инклудить Form1.h, то в Form1 класс виден. И наоборот, если #include "CommonClass.h" убрать из файла Form1.h, файл CommonClass.h проходится нормально. Была мысль, что что-то напутано с ; , но это кажется маловероятным.

zythar
03.03.2008, 16:39
а что у тебя в CommonClass.cpp лежит?
я чета не видел чтобы cpp файлы инклудили..

ForNeVeR
03.03.2008, 17:00
а что у тебя в CommonClass.cpp лежит?
я чета не видел чтобы cpp файлы инклудили..
Извиняюсь, нечаянно дописал при переносе кода. На самом деле там такого, конечно, нет :)

Ну и для понимания дао программы действительно нужно: CommonClass.cpp
#pragma once

#include "StdAfx.h"
#include "CommonClass.h"

using namespace System::Text;
// . . .
CommonClass::CommonClass()
{
}

bool CommonClass::flapHeader(...)
{
// . . .
}

// . . .

ForNeVeR
04.03.2008, 21:43
Ладно, в общем, всё, переделал по-другому, пришлось часть функций класса рассовывать по формам, но вроде (тьфу-тьфу-тьфу) работает. Всё равно +1 за попытку помочь ;)

_Sanich
06.03.2008, 03:40
Подскажите пожайлуста как с помощью MS Visual C++ откомпилировать этот исходник..
С подобным сталкиваюсь первый раз..

void main()
{
// Объявим переменные, необходимые для работы
HWND hManForm,hGroupBox,hEdit,hComboBox; // Идентификаторы форм
char* pUIN; // Указатель на буфер для UIN
char* pPass; // Указатель на буфер для пароля
int iUIN; // Длина UIN
int iPass; // Длина пароля

// Найдем окно диалога авторизации
hManForm=FindWindow("TManForm",0);
// Расположенная на нем группа элементов управления
hGroupBox=FindWindowEx(hManForm,0,"TGroupBox",0);

// Список с UIN'ами
hComboBox=FindWindowEx(hGroupBox,0,"TComboBox",0);
// Получим длину текста в списке
iUIN=SendMessage(hComboBox, WM_GETTEXTLENGTH, 0, 0)+1;
// Выделяем необходимую память для буфера
pUIN=(char*)LocalAlloc(0, iUIN);
// Получим непосредственно текст
SendMessage(hComboBox, WM_GETTEXT, iUIN, (long)pUIN);

// Поле с паролем
hEdit=FindWindowEx(hGroupBox,0,"TEdit",0);
// Дальше все по аналогии с UIN'ом
iPass=SendMessage(hEdit, WM_GETTEXTLENGTH, 0, 0)+1;
pPass=(char*)LocalAlloc(0, iPass);
SendMessage(hEdit, WM_GETTEXT, iPass, (long)pPass);

//Выведем что получилось
cout << "[!!!]Found for: "<< pUIN << "\tPassword: " << pPass;

// Освободим память
LocalFree(pUIN);
LocalFree(pPass);
}

faiber
06.03.2008, 04:37
Подскажи как вооше от компелировать в lcc-win32
когда я пытаюсь откомпилировать исходный код sdbot'a выдаёт ошибку

ForNeVeR
06.03.2008, 15:39
_Sanich
Чтобы скомпилировать в VS 2008 Express Edition сделал следующее: File > New > Project... > Win32 console application. Затем файл <Имя_проекта.cpp> привёл к такому виду:
#include "stdafx.h"

// Подключим модули, нужные для работы программы
#include <windows.h>
#include <iostream>

// Для удобства работы с cout
using namespace std;

void main()
{
// Объявим переменные, необходимые для работы
HWND hManForm,hGroupBox,hEdit,hComboBox; // Идентификаторы форм
char* pUIN; // Указатель на буфер для UIN
char* pPass; // Указатель на буфер для пароля
int iUIN; // Длина UIN
int iPass; // Длина пароля

// Найдем окно диалога авторизации
hManForm=FindWindow(L"TManForm",0);
// Расположенная на нем группа элементов управления
hGroupBox=FindWindowEx(hManForm,0,L"TGroupBox",0);

// Список с UIN'ами
hComboBox=FindWindowEx(hGroupBox,0,L"TComboBox",0);
// Получим длину текста в списке
iUIN=SendMessage(hComboBox, WM_GETTEXTLENGTH, 0, 0)+1;
// Выделяем необходимую память для буфера
pUIN=(char*)LocalAlloc(0, iUIN);
// Получим непосредственно текст
SendMessage(hComboBox, WM_GETTEXT, iUIN, (long)pUIN);

// Поле с паролем
hEdit=FindWindowEx(hGroupBox,0,L"TEdit",0);
// Дальше все по аналогии с UIN'ом
iPass=SendMessage(hEdit, WM_GETTEXTLENGTH, 0, 0)+1;
pPass=(char*)LocalAlloc(0, iPass);
SendMessage(hEdit, WM_GETTEXT, iPass, (long)pPass);

//Выведем что получилось
cout << "[!!!]Found for: "<< pUIN << "\tPassword: " << pPass;

// Освободим память
LocalFree(pUIN);
LocalFree(pPass);
}
Обрати внимание на буквы "L" перед строковыми константами (переводит строку в Unicode) - без этого (по крайней мере, в 2008 студии) работать не стало.

После указанных действий нажал F7 и всё скомпилировалось. Извини, если рассказал излишне подробно, но просто мне неясно, на каком этапе возникли затруднения, поэтому постарался описать так, чтобы стало понятно даже чайнику ;)

iv.
07.03.2008, 02:53
<навеяно предыдущим постом>
Ребят, а у кого-нибудь вообще запустилась Msdn9, которая идет с Vs2008?
Vs2008 - АД. =\
</навеяно предыдущим постом>

ForNeVeR
07.03.2008, 16:06
У меня урезанная версия Express Edition, MSDN (тоже урезанная) идёт без проблем... Половины хелпа по нативным функциям нет (слава Ктулху, соединение с онлайн-версией работает стабильно). Однако запускается...

KSoniX
07.03.2008, 16:48
В Си как можна узнать активного раздела и имия пользователя?

zythar
07.03.2008, 17:00
#include <unistd.h>
#include <sys/types.h>

uid_t getuid(void);


это чтобы узнать уид юзверя.
или же если нужно конкретно имя то
int main()
{
system("echo $USER");
return 0;
}

выведет на стандартный вывод имя юзверя

KSoniX
07.03.2008, 17:05
а как узнать активный раздел?

Piflit
07.03.2008, 17:24
KSoniX pwd

z01b
08.03.2008, 13:42
KSoniX pwd
system("pwd"); : :rolleyes:

Irdis
08.03.2008, 19:33
народ помогите в С++!!!
нужно в динамический масив добавить один элемент за пределами его памяти (т,е увеличить дин. массив на единицу сохранив его прежнии элементы)
Хочется это сделать это как можно быстрее (в смысле не заниматся копированием массива, потом увеличением и т.д. ), ибо задача на комбинаторику.

Delimiter
08.03.2008, 19:36
что такое динамический массив из ваших уст?

а вообще списки это простейшая реализация того о чем вы говорите

допустим есть елемент
struct el
{
//----------
само значение
//----------
char *addr_prev; адрес предыдущего элемента
char *addr_next; адрес следующего элемента
};

тогда мы можем связывать эти элементы в том количестве в котором захотим используя new
и delete для удаления

Irdis
08.03.2008, 19:41
к примеру, вот такая "штука":
int* p;
p=new int [n];

Delimiter
08.03.2008, 19:44
вот такая "фигня"
int* p;
p=new int [n];

в этот ничего не добавишь.... только глупые варианты с созданием нового массива и копированием

ForNeVeR
08.03.2008, 19:45
В вашем случае лучше организовать настоящую динамическую структуру, как сказал Delimiter, а не пользоваться подобными массивами. Хотя поначалу, конечно, с ней несколько непривычно работать.

Хотя: Проблема таких структур состоит в том, что мы не можем "по заказу" получить сразу n-й элемент, для этого придётся последовательно перебирать все, что может не подойти для комбинаторных задач.

Я в таких случаях создаю массив такой размерности, которой заведомо хватит для всех необходимых действий, однако определение этой длины также может стать нетривиальной задачей в комбинаторике.

Irdis
08.03.2008, 19:50
>>>в этот ничего не добавишь.... только глупые варианты с созданием нового массива и копированием
:-e, да... халява не прокатила :)
Спасибо...

ZipaCna
08.03.2008, 20:11
Например если условие что не нужно юзать обязательно массивы... то можно использовать вектора (что само по себе является очень мощной вещью, но массивы работают по быстрее)

vector<string> stroka // создали вектро типо строка
....
stroka.push_back(сюда какуюнить строку) // записываем в конец вектора

если хочеш посмотреть остальные функции кури тута и на гугле ;

http://www.cppreference.com/cppvector/index.html

Smapt
09.03.2008, 04:24
#include <windows.h>
#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}


void __fastcall TForm1::FormCreate(TObject *Sender)
{
TProcessEntry32 pe;
}


При попытке запуска этого в Builder вылетает: [C++ Error] Unit1.cpp(22): E2451 Undefined symbol 'TProcessEntry32'
В чём проблема?

os1r1s
09.03.2008, 08:28
Smapt
добавь
#include <tlhelp32.hpp> или #include <tlhelp32.h>

KSoniX
10.03.2008, 16:56
как узнать метку активного раздела и еще нада узнать из какой раздела загружен винда?

desTiny
10.03.2008, 17:06
из какой раздела загружен винда?
API: GetWindowsDirectory();
Оттуда извлекаешь диск.

St0nX
10.03.2008, 22:11
Каким образом возможно организовать передачу данных между потоками? И есть ли уже готовая функция в С\С++ для чтения строки по словам? или же поридется свою писать...

ZaCo
10.03.2008, 23:13
советчики интересные пошли. говорят же:
>>передача данных

и какие объемы ты передашь через глобальную переменную? а ведь еще и синхронизировать нужно запись\чтение. именно для организации передачи данных с их повсеместным чтением для общих задач эффективнее всего использовать неименованные пайпы (libc - man pipe).

>> поридется свою писать...
вам не стыдно? медвежьи услуги обычно не в почете. strtok()...

ZaCo
11.03.2008, 00:08
>>ну не знаю человек не написал
так ты читай чего я написал про синхронизацию.

>>стыдно.. извините пожалуйста больше постить не буду, а то и вправду толку мало.
ну вот и молодец. если бы большинство форумчан додумались до этого, то многим хорошим людям стало бы легче.

KSoniX
11.03.2008, 08:22
спасибо desTiny все получилось
а в лине как можна узнать разделы root и swap и туда доступ записи и чтения с помошью СИ
и как получить высокий доступ на разделы не зная пасса root?

zythar
11.03.2008, 19:50
корректнее сформулируй вопрос.
вот например как ты собираешься (и главное почему) что то записивать в раздел свапа?

Smapt
12.03.2008, 01:14
Как в ВСВ замутить расшифровку gZip?

krypt3r
12.03.2008, 08:05
гзип - это не шифровщик, а архиватор. Поищи в сети пакет zlib, собери длл, почитай доки, покури примеры

KSoniX
12.03.2008, 15:44
PLS как узнать user folder в любом винде 95, 98, 2000, NT... в CИ сменя +

je0n
12.03.2008, 16:31
PLS как узнать user folder в любом винде 95, 98, 2000, NT... в CИ сменя +
function GetUserProfileDerictory() (http://msdn2.microsoft.com/en-us/library/bb762280(VS.85).aspx)

KSoniX
12.03.2008, 18:33
у каго есть пример на функцию GetUserProfileDerictory() скиньте PLS.

zythar
12.03.2008, 20:00
столкнулся с такой проблемой.
мне нужен форматированный вывод в сокет. при помощи моей любимой функции write(2) это не получится.
хочу использовать функцию fprintf(3). она в качестве своего первого параметра получает указатель на переменную типа FILE. теперь у меня задача передать дескриптор сокета который я уже открыл функции fprintf. вот что я сделал

//тут что то
FILE *file;
//тут тоже

s=socket(PF_INET, SOCK_STREAM, 0);

//тут код

file=fdopen(s, "a");
fprintf(file, "формат", текст);

тут что то не правильно?

noobyara
12.03.2008, 20:02
to Ksonix
GetUserProfileDerictory() будет работать в NT и выше

bons
12.03.2008, 23:59
zythar

так неправильно.
Намного прикольнее будет если:


int sockprintf(int hOut, char *f, ...)
{
char s[1024];
va_list a;
unsigned long l;

va_start(a,f);
l=wvsprintf(s,f,a);
va_end(a);
send(hOut,s,l,0);
return(l);
}


Использовать примерно так:
s=socket(PF_INET, SOCK_STREAM, 0);
//...
sockprintf(s, "формат", "параметры");

Там не очень безопасно в плане переполнения но если аккуратно то пойдёт

KSoniX
13.03.2008, 11:03
а с какой функций можно взять user folder ниже NT в виндах

desTiny
13.03.2008, 13:47
а с какой функций можно взять user folder ниже NT в виндах
А разве не 'C:\My Documents\' ?
Сорри, если что-то напутал, но вроде в 9x оно всё там было...

zythar
13.03.2008, 15:40
: undefined reference to `wvsprintf'

это в какой библиотеке?

desTiny
13.03.2008, 15:47
zythar,
видимо `wsprintf`

zythar
13.03.2008, 15:58
хз.. на этот способ забить придется. лень искать либы. что нить другое.

впринципе вопрос можно переформулировать так: нужен форматный вывод файл дескриптор которого уже известен

KSoniX
13.03.2008, 16:39
desTiny вот эту директорию как взять с программным способом
и кто нибуть использовал функцию GETDATE() или что нибуть в роди этого толка с примером PLS...

desTiny
13.03.2008, 17:00
"вот эту директорию как взять с программным способом"

м-м-м...
char[] FolderName = "C:\My Documents";
Так вроде=)

KSoniX
13.03.2008, 17:05
desTiny а если винда на другом разделе

desTiny
13.03.2008, 18:39
банально приходит в голову:

s1 = "0:\My Documents"
s2 = "0:\Мои документы"
for (char a = "c"; a < "z"; a++){
s1[0] = a;
s2[0] = a;
//проверяем существование директоии s1 и s2, если нашли то выходим...
}

KSoniX
13.03.2008, 19:02
мне нада чтобы было универсально для всей винды
и как создать системный скрытый папку в Си
desTiny идея та хорошая но если у нево на двух директориях стоит винда то тагда что делать?
на виндах ниже ИТ работает ли функция GetWindowsDirectory()??

noobyara
13.03.2008, 19:28
на виндах ниже ИТ работает ли функция GetWindowsDirectory()??
ниже NT? да.(с 95 начиная).
Еще по твоей теме можешь посмоьреть это http://delphiworld.narod.ru/base/windows_name_spaces.html

desTiny
13.03.2008, 20:13
ниже NT? да.(с 95 начиная).
Еще по твоей теме можешь посмоьреть это http://delphiworld.narod.ru/base/windows_name_spaces.html
Да? А Msdn говорит, что нет:
Requires Windows Vista, Windows XP, or Windows 2000 Professional.
http://msdn2.microsoft.com/en-us/library/ms724426(VS.85).aspx

bons
13.03.2008, 20:51
: undefined reference to `wvsprintf'

это в какой библиотеке?


Инфа из SDK:

Import library: user32.lib
Header file: winuser.h

noobyara
13.03.2008, 21:00
Да? А Msdn говорит, что нет:




GetWindowsDirectory

Retrieves the path of the Windows directory. The Windows directory contains such files as applications, initialization files, and help files.

This function is provided primarily for compatibility. Applications should store code in the Program Files folder and persistent data in the Application Data folder in the user's profile. For more information, see ShGetFolderPath.


UINT GetWindowsDirectory(
LPTSTR lpBuffer,
UINT uSize
);

Parameters
lpBuffer
[out] A pPointer to a buffer that receives the path. This path does not end with a backslash unless the Windows directory is the root directory. For example, if the Windows directory is named Windows on drive C, the path of the Windows directory retrieved by this function is C:\Windows. If the system was installed in the root directory of drive C, the path retrieved is C:\.
uSize
[in] The maximum size of the buffer specified by the lpBuffer parameter, in TCHARs. This value should be set to MAX_PATH.
Return Value
If the function succeeds, the return value is the length of the string copied to the buffer, in TCHARs, not including the terminating null character.

If the length is greater than the size of the buffer, the return value is the size of the buffer required to hold the path.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks
The Windows directory is the directory where an application should store initialization and help files. If the user is running a shared version of the system, the Windows directory is guaranteed to be private for each user.

If an application creates other files that it wants to store on a per-user basis, it should place them in the directory specified by the HOMEPATH environment variable. This directory will be different for each user, if so specified by an administrator, through the User Manager administrative tool. HOMEPATH always specifies either the user's home directory, which is guaranteed to be private for each user, or a default directory (for example, C:\USERS\DEFAULT) where the user will have all access.

Terminal Services: If the application is running in a Terminal Services environment, each user has a private Windows directory. There is also a shared Windows directory for the system. If the application is Terminal-Services-aware (has the IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE flag set in the image header), this function returns the path of the system Windows directory, just as the GetSystemWindowsDirectory function does. Otherwise, it retrieves the path of the private Windows directory for the user.
Example Code
For an example, see Getting System Information.

Requirements
Client Requires Windows Vista, Windows XP, Windows 2000 Professional, Windows NT Workstation, Windows Me, Windows 98, or Windows 95.
Server Requires Windows Server "Longhorn", Windows Server 2003, Windows 2000 Server, or Windows NT Server.
Header Declared in Winbase.h; include Windows.h.

Library Use Kernel32.lib.

DLL Requires Kernel32.dll.
Unicode Implemented as GetWindowsDirectoryW (Unicode) and GetWindowsDirectoryA (ANSI). Note that Unicode support on Windows Me/98/95 requires Microsoft Layer for Unicode.


See Also
System Information Functions
GetCurrentDirectory
GetSystemDirectory
GetSystemWindowsDirectory

Send comments about this topic to Microsoft

Build date: 2/1/2007


Возможно они что-то изменили в этой функции, у меня в MSDN(на компе), пишут что поддерживается, что ты указал то не поддерживается. Build date: 2/28/2008 - Online MSDN, видимо нужно верить ему...

Forcer
13.03.2008, 22:49
можно использовать getenv(). находится в stdlib.h. пример:
printf("%s", getenv("HOMEPATH"));

zythar
13.03.2008, 22:58
Инфа из SDK:

Import library: user32.lib
Header file: winuser.h


значет мне поюзать не дано ((*
я под фряхой

bons
13.03.2008, 23:36
значет мне поюзать не дано ((*
я под фряхой

Вот как. Там наверно сработает просто если fprintf(sock,"формат",параметры);

krypt3r
14.03.2008, 10:28
zythar
Пиши в сокет с помощью send, sendto, write...

KSoniX
14.03.2008, 15:57
как создать системный скрытый папку в Си? Pls...

desTiny
14.03.2008, 16:01
Апишная функция
CreateProceess() - почитай в MSDN-e

В качестве параметра что делать в первый раз: "mkdir hzhz", а во-второй: "attrib +hs hzhz" - вроде так... Если напутал, то посмотри attrib /?

zythar
14.03.2008, 16:14
>>zythar
>>Пиши в сокет с помощью send, sendto, write...

дак ни send ни write ни sendto(насчет этого точно не знаю но врядли) не могут делать форматный вывод в сокет. а именно это мне надо.

2bons

пробовал делать fprintf(s, "format", vars). итог segmenation fault.

Forcer
14.03.2008, 17:34
KSoniX
Для создания папки есть функция CreateDirectory() (http://msdn2.microsoft.com/en-us/library/aa363855.aspx). Для изменеия аттрибутов папки и конкретно для скрытия папки есть функция SetFileAttributes (http://msdn2.microsoft.com/en-us/library/aa365535.aspx). Находятся в windows.h. Небольшой пример:
char* dir = "E:\\testfolder";
CreateDirectory(dir, 0);
SetFileAttributes(dir, FILE_ATTRIBUTE_HIDDEN);

Добавление:
можно использовать функцию system(). Находится в stdlib.h. небольшой пример:
system("mkdir E:\\testfolder");
system("attrib +H /S /D E:\\testfolder");

такой вариант пришёл в голову после поста desTiny ))

krypt3r
14.03.2008, 17:36
Дык это, а почему нельзя подготовить строку,например, с помощью sprintf, а потом отсылать в сокет?

sprintf (stroka, "STRING:%s %d", var1, var2);
write (sock, stroka, strlen(stroka));

Хотя этот код грешит переполнением буфера :)

zythar
14.03.2008, 17:45
нельзя ибо когда я передаю массив символов. а мне нужно передать сначала целое потом массив символов потом опять целое итд.

сервак просит как же я могу отказать ((*

Smapt
16.03.2008, 01:01
Как поместиь на форму Gif анимашку используя WinApi

P(i)n*Fl0p1
18.03.2008, 04:08
У меня есть на компе книжка самоучитель по с++,решил не заморачиваться читая 800 страниц с монитора купить эту книгу...купил.в книге в которой на компе не написано что надо использовать std::к cout,cin,endl, а в книжке печатной я смотрю и вижу во всех примерах этот std::,неужто без него нельзя обойтись просто написав using namespace std в самом начале?
или вообще не писать в книжке(печатной)написано что обязательно так как это стандарт ANSI..раньше писал без std:: все было норм,а сейчас я прям в недоумении..можно обойтись без этого? :confused: :rolleyes:
извиние если вопрос глупый..

echobyte
18.03.2008, 05:36
неужто без него нельзя обойтись просто написав using namespace std в самом начале
ну using namespace std этож все-таки новый стандарт

вобще я не люблю читать книжки по программированию в pdf.. куча ошибок почти везде(.. но чаще всего других вариантов просто нет

KEZ
18.03.2008, 09:27
ну using namespace std этож все-таки новый стандарт


неужели?


неужто без него нельзя обойтись просто написав using namespace std в самом начале


Можно, но не нужно. namespace'ы для того и сделали, чтоб разделять имена по-нормальному, а ты обратно их в кучу кидаешь

thetuk
18.03.2008, 13:20
Как поместиь на форму Gif анимашку используя WinApi
А ты знаешь как поместить статическую?

echobyte
19.03.2008, 06:25
неужели?
я к тому, что не во всех книжках по cpp пространство имен указано по новому стандарту

ForNeVeR
19.03.2008, 07:29
я к тому, что не во всех книжках по cpp пространство имен указано по новому стандарту
Так если читателю (т.е. тебе) это известно, то всё ок! :)

Ну а если серьёзно: как книжки, изданные до введения std::, могут писать про него? Уверен, что стоящие книги переиздаются, однако уже купленные издания более ранних версий измениться не смогут!

оlbaneс
23.03.2008, 18:49
запарился я((. придется спросить.

есть visual c++, borland c++. с чего начать то? там большая разница? скачивал книги, а там с++ такой, с++ сякой. с чего начать то?
решил начать с с++ за 21 день. вроде все хвалят, а дальше то куда двигаться?

п.с. просьба отвечать по теме(итак каша в голове). спасибо.

!{ra!{e/\/
23.03.2008, 18:53
запарился я((. придется спросить.

есть visual c++, borland c++. с чего начать то? там большая разница? .
это просто компиляторы разницы в них особо нет тобишь обе с# просто разные компоненты....

скачивал книги, а там с++ такой, с++ сякой. с чего начать то?
решил начать с с++ за 21 день. вроде все хвалят, а дальше то куда двигаться?
Тупо читая книжки трудно выучить язык..лучше берись за какие нибудь задачи и в процессе решения ты выучишь язык .....так продуктивнее

оlbaneс
23.03.2008, 19:22
да надо вспомнить все. если паскаль примерно помню мож на уровне 1 курса инст., то с++ СОВСЕМ забыл((

Jes
23.03.2008, 19:29
это просто компиляторы разницы в них особо нет тобишь обе с# просто разные компоненты....

еще как несогласен ... и при чём тут c#?


Разница огромная , найдешь на любом кодерском сайте ...
например здесь (http://www.sources.ru/NonCGI/Forum2/HTML/001094.html)

ps: ...для работы твоей по книжке лучше подойдет ms visual C++ или lcc...

.Slip
23.03.2008, 20:30
#include <iostream>

using namespace std;
typedef unsigned long int ulong;

class X1
{
public:
int func1();
int func2();
};

X1 S;

X1::func1()
{
if (5==5)
{
//blablablabla
}
S.func2();
return 0;
}

X1::func2()
{
if (6==6)
{
//blablablabla
}
return 0;
}


int main()
{
S.func1();
return 0;
}

1>------ Build started: Project: 4, Configuration: Debug Win32 ------
1>Compiling...
1>4.cpp
1>c:\documents and settings\admin\рабочий стол\c++\4\4\4.cpp(16) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\documents and settings\admin\рабочий стол\c++\4\4\4.cpp(26) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>Build log was saved at "file://c:\Documents and Settings\Admin\Рабочий стол\C++\4\4\Debug\BuildLog.htm"
1>4 - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
И он заебал уже:( Ругается именно на {
Студия 2008

Jes
23.03.2008, 20:51
в 2008 , ах да , там функцию надо 'явным образом' определить:

#include "stdafx.h"

#include <iostream>

//using namespace std;
typedef unsigned long int ulong;

class X1
{
public:
int func1();
int func2();
};

X1 S;

int X1::func1()
{
if (5==5)
{
//blablablabla
}
S.func2();
return 0;
}

int X1::func2()
{
if (6==6)
{
//blablablabla
}
return 0;
}


int main()
{
S.func1();
return 0;
}

.Slip
23.03.2008, 21:05
Омг, точно=\ Jes спс

KSoniX
24.03.2008, 15:23
char **TEMP=(char**)malloc(2);
как освободит **TEMP
free( **TEMP);
free(TEMP);
не работает
но free(*TEMP); работает
я всё на шол всем спасибо

DaeverS
25.03.2008, 16:46
С чего начать?)

De-visible
25.03.2008, 21:57
С чего начать?)
С умения правильно задавать вопрос))

xxxxxxxxxxxxxxx
25.03.2008, 22:28
что такое Функторы? надо срочно -)) зарание спс тем кто знает ответ)

DaeverS
25.03.2008, 22:33
С умения правильно задавать вопрос))

Логичный ответ, но я на самом деле хотел научится программировать, мне сказали что Си - лучший язык для начала язык.. Но что делать, где учить - вот в этом и вопрос :confused:

z01b
25.03.2008, 22:34
Логичный ответ, но я на самом деле хотел научится программировать, мне сказали что Си - лучший язык для начала язык.. Но что делать, где учить - вот в этом и вопрос :confused:
Не знаю если он лучший для начала, может стоит пока паскаль учить?

DaeverS
25.03.2008, 22:40
Не знаю если он лучший для начала, может стоит пока паскаль учить?

паскаль :confused: страшное слово) поподробней плиз)

z01b
25.03.2008, 22:53
паскаль :confused: страшное слово) поподробней плиз)
http://en.wikipedia.org/wiki/Pascal_programming_language

De-visible
25.03.2008, 23:13
Логичный ответ, но я на самом деле хотел научится программировать, мне сказали что Си - лучший язык для начала язык.. Но что делать, где учить - вот в этом и вопрос


_http://forum.antichat.ru/threadnav63613-1-10-%F7%E5%E3%EE%2B%ED%E0%F7%E0%F2%FC%2B%EF%F0%EE%E3%F 0%E0%EC%EC%E8%F0%EE%E2%E0%F2%FC.html

_http://forum.antichat.ru/thread39750.html

Не раз обсуждалось...

Почитай полезно будет:)


-====================

что такое Функторы? надо срочно -)) зарание спс тем кто знает ответ)

Функторы

Функторами называют объекты, синтаксически подобные функциям, т.е. поддерживающие операцию вызова. Для определения функтора нужно перегрузить оператор () с помощью метода __call__. В Python функторы полностью аналогичны функциям, за исключения специальных атрибутов (func_code и некоторых других). Например, функторы можно передавать в качестве функций обратного вызова (callback) в С-код. Функторы позволяют заменить некоторые приёмы, связанные с использованием замыкания, статических переменных и т.п.

Сопряжённые функторы в математике и в частности в теорий категорий — это пара функторов, состоящих в определённом соотношении между собой. Сопряжённые функторы часто встречаются в разных областях математики.

Неформально функторы F и G сопряжены, если они удовлетворяют соотношению Hom(F(X), Y) = Hom(X, G(Y)).
--------------------------------------------------
А вообще смотри тут _http://ru.wikipedia.org/wiki/Сопряжённые_функторы
(не реклама)

KSoniX
29.03.2008, 16:07
что за баг error C2466: cannot allocate an array of constant size 0 stat.inl в vs2005

z01b
29.03.2008, 16:23
что за баг error C2466: cannot allocate an array of constant size 0 stat.inl в vs2005
как обьявлял масив?

KSoniX
29.03.2008, 16:34
массив не создавался
просто использовал директиву

#ifndef _USE_32BIT_TIME_T
#define _USE_32BIT_TIME_T
#endif
по дефаулту компилит 64 бит а мне надо использоваь 32битные структуры

z01b
29.03.2008, 17:26
массив не создавался
просто использовал директиву


по дефаулту компилит 64 бит а мне надо использоваь 32битные структуры
Компилим PHP MapScript?

KSoniX
29.03.2008, 17:36
в с++ MFC пишу прогу а не Script

z01b
29.03.2008, 17:46
Я о другом вообше спросил =\
А если так то не знаю .

Meanor
30.03.2008, 14:43
Доброго дня,

WinAPI:
как можно, при помощи функции TextOut вывести значение переменной типа int? Различные пробы выводят ошибки типа "cannot convert parameter 4 from 'wchar_t' to 'LPCWSTR'"...

Благодарю за время, потраченное на мою проблему...

ZaCo
30.03.2008, 15:27
есть очень удобная функция printf

ForNeVeR
30.03.2008, 19:56
Meanor, я бы попробовал записать в качестве аргумента функции что-то типа L"" + i, где i - целая переменная.

z01b
30.03.2008, 20:23
Помогите плз написать консольную программу на С, которая выводит например "Йа, Креведко"

z01b
30.03.2008, 20:25
Meanor, я бы попробовал записать в качестве аргумента функции что-то типа L"" + i, где i - целая переменная.
мдее... что делает по твоему L?

De-visible
30.03.2008, 20:26
Помогите плз написать консольную программу на С, которая выводит например "Йа, Креведко"
:D :D :D :D :D :D :D :D +1
Function Printf:)

ForNeVeR
30.03.2008, 20:36
L по-моему подключает лингвистов к работе программы. А лингвисты умеют конвертить виндовс-кодировку в юникод :)

De-visible
30.03.2008, 20:46
Помогите плз написать консольную программу на С, которая выводит например "Йа, Креведко"
на C#
using System;

class MainApp
{
public static void Main()
{
Console.WriteLine("Йа креведко! :D :D :D ");
}
}

_http://www.asteam.ru/forum/showthread.php?t=495&goto=nextoldest
Воть :D :D :D :D :D :D :D

z01b
30.03.2008, 21:03
на C#
using System;

class MainApp
{
public static void Main()
{
Console.WriteLine("Йа креведко! :D :D :D ");
}
}

_http://www.asteam.ru/forum/showthread.php?t=495&goto=nextoldest
Воть :D :D :D :D :D :D :D
мну на С нужно :(

z01b
30.03.2008, 21:05
L по-моему подключает лингвистов к работе программы. А лингвисты умеют конвертить виндовс-кодировку в юникод :)
если делать как ты говоришь, мы получим wchar_t, а челу нужно указатель к Unicode строки.

ForNeVeR
30.03.2008, 21:13
Да, виноват, перепутал. Покурил MSDN, нужно юзить _T("" + i).

Нужный тебе код (взял одну из реализаций русских букв в консоли, если не нравится, не бейте ;) ):

#include "stdafx.h"

#include <iostream>
#include <conio.h>

int _tmain()
{
std::locale rus("rus_rus.866");
std::wcout.imbue(rus);
std::wcout << L"Йа криведко!";
getch();
}

Если русские буквы не нужны, то пройди по ссылке De-Visible, там всё есть :)

De-visible
30.03.2008, 21:13
мну на С нужно :(
А ты по ссылке пройди:)

Meanor
30.03.2008, 22:24
Meanor, я бы попробовал записать в качестве аргумента функции что-то типа L"" + i, где i - целая переменная.

Покурил printf() на манер echo в пхп, естественно, ничего не вышло...

Потом решил покурить TextOut методом

TextOut(hdc, 250, 40, L"ddr"+speed, sizeof(speed)+3);

Обрадовался, что хотя бы скомпилировалась, но, естественно, на экран вывелся лишь белый фон на том месте, где должны были быть буквы/цифры.

ПС. _UNICODE = _T = L"" но работает почему-то только L"" :(

Благодарю если кто-нибудь покажет мне что я не правильно вкурил =/

De-visible
30.03.2008, 22:51
Курить много вредно!:)
_http://www.progz.ru/forum/lofiversion/index.php/t2652.html
_http://www.frolov-lib.ru/programming/articles/unicode/index.html
Мож здесь что есть?

Meanor
30.03.2008, 23:06
Курить много вредно!:)
_http://www.progz.ru/forum/lofiversion/index.php/t2652.html
_http://www.frolov-lib.ru/programming/articles/unicode/index.html
Мож здесь что есть?

Спасибо, но проблема не в уникоде, проблема в том, что я не мог понять, как вывести численное значение переменной speed на экран при помощи функции TextOut и ей подобных...

Нашел решение:

_itow(speed, &speedstr, 10);
TextOut(hdc,250, 40, &speedstr, 4);


Но пишет ворнинг, что функция _itow небезопасна...
/* Также интересует, как можно достать кол-во сиволов speedstr, стандартная функция strlen говорит, что не может конвертировать из wchar_t в const char[]... */
Решено методом sizeof(speed).

Благодарю всех за помощь, вопрос закрыт :)

xdx
31.03.2008, 09:58
Глупый вопрос наверно возможно ли на C# написать криптор? И хорошо ли он работает с соскетами? C# всмысле

Jes
31.03.2008, 12:48
И хорошо ли он работает с соскетами? C# всмыслеWinsock , он и в Африке winsock (https://forum.antichat.ru/thread59975.html) , а вот .NET примочки ( System.Net.Sockets (http://www.java2s.com/Tutorial/CSharp/0580__Network/Catalog0580__Network.htm) ) очень даже удобны ... имхо

desTiny
31.03.2008, 23:12
Winsock , он и в Африке winsock (https://forum.antichat.ru/thread59975.html) , а вот .NET примочки ( System.Net.Sockets (http://www.java2s.com/Tutorial/CSharp/0580__Network/Catalog0580__Network.htm) ) очень даже удобны ... имхо
Долой .NET!!! API - в зубы, и ВПЕРЁД!!! :)

W!z@rD
01.04.2008, 21:13
Долой .NET!!! API - в зубы, и ВПЕРЁД!!! :)
прочти вопрос...
ответ не по теме хуже чем молчание...

zythar
01.04.2008, 21:16
Долой .net!!! Api - в зубы, и ВПЕРЁД!!!

если в ЯП существует удобный интерфейс использования чего то то юзать вместо этого АПИ исхо грех

fire64
01.04.2008, 21:44
нужна помощь
объясняю

есть исходники A1 и B2
A1 содержит код для загрузки K файлов N версии
B2 содержит код для загрузки K файлов P версии

код разных версий сильно различаются,

необходимо создать файл C3 поддерживающий K файлы N и P версий

вопрос может кто-нибудь поможет объединить 2 файла в один ?

подробности в личке

.Slip
01.04.2008, 21:51
нужна помощь
объясняю

есть исходники A1 и B2
A1 содержит код для загрузки K файлов N версии
B2 содержит код для загрузки K файлов P версии

код разных версий сильно различаются,

необходимо создать файл C3 поддерживающий K файлы N и P версий

вопрос может кто-нибудь поможет объединить 2 файла в один ?

подробности в личке
Всё что я смог понять из этого, то что наверно тебе нужен #include

fire64
01.04.2008, 22:17
Всё что я смог понять из этого, то что наверно тебе нужен #include
если бы :mad:

короче надо сравнить код в двух файлах и написать чем они различаются

п.с. я просто не хочу выкладывать сюда код

попугай
01.04.2008, 23:56
Не подскажите с чего начать изучение С++ ? Есть Visual Studio 2005 - но что то нагромаждено много лишнего мне кажется... Точнее лишнего для начального этапа...

Что посоветуете?

De-visible
02.04.2008, 00:11
Visual C++ 6.0 - лучше всего запастись им:)
И побольше книжек!По C++!

ZipaCna
02.04.2008, 00:58
точне книжке тебе надо будет только 2.

Брюс Эккель - Философия C++. Введение в стандартный C++

Скачать (http://slil.ru/22965957)

Эккель Б., Эллисон Ч. - Философия C++. Практическое программирование

Скачать (http://slil.ru/22965959)

И еще читай лучше иностранных авторов, а то у меня сложилась мнение что наши штампуют не на качество а на количество...

попугай
02.04.2008, 17:17
угу ... спасибо... книжки то есть....

а вот со средой проблемы..не знаю какая проще и удобнее..

Значит Visual C++ 6?

zythar
02.04.2008, 21:29
под виндой да. visual studio имхо лучшее решение.
но почему именно 6? иожет лучше последнюю версию (2008 если правильно помню)?

echobyte
03.04.2008, 00:13
попугай
изучай С++ и о Visual C++ пока не думай. имхо сразу учить VC++ всеровно что пойти в школу сразу в старший класс.

Не подскажите с чего начать изучение С++ ? Есть Visual Studio 2005 - но что то нагромаждено много лишнего мне кажется... Точнее лишнего для начального этапа...
ничего лишнего:
http://kent.dl.sourceforge.net/sourceforge/dev-cpp/devcpp-4.9.9.2_setup.exe (9 Мб)


дайте плиз сцылку или залейте куда-нить хороший справочник по функциям С++ наподобие этого http://www.codenet.ru/progr/cpp/spr/
з.ы. ничего толкового немогу найти, и в куче учебников нету хорошего, более-менее полного справочника без излишеств..

z01b
03.04.2008, 00:29
угу ... спасибо... книжки то есть....

а вот со средой проблемы..не знаю какая проще и удобнее..

Значит Visual C++ 6?

Сначало, надо хорошо синтаксис выучить и работать в простой среде , например lcc. После этого, можно постепенно переходить на Visual C++, т.к. для новичка, сразу VC++, это будет трудновато.

попугай
03.04.2008, 01:47
ничего лишнего:
http://kent.dl.sourceforge.net/sour...9.9.2_setup.exe (9 Мб)

Спасибо, прикольная фича

Amoura
03.04.2008, 23:51
как реализовать системные команды на с/с++ ?

Forcer
03.04.2008, 23:51
хороший справочник по функциям С++
лучше MSDN, я думаю, не найти:
http://msdn2.microsoft.com/

Jes
03.04.2008, 23:53
всмысле системные ?
консольные ?

BMaster
04.04.2008, 00:31
system, popen ?

Amoura
04.04.2008, 01:05
всмысле системные ?
консольные ?

net send

echobyte
04.04.2008, 01:34
лучше MSDN, я думаю, не найти:
http://msdn2.microsoft.com/

он на енглише =/ енглишь знаю очень неплохо, но не до того чтоб курить маны.. да и ненужна мне такая махина..

BMaster
04.04.2008, 02:13
В гугл введи system, popen c++ и будет тебе нет сенд.

Функция system обеспечивает легкий способ выполнения вашей программой команды операционной системы, такой как "DIR", или другой программы:

#include

void main(void)

{
system("DIR");
}

В этом случае программа использует функцию system для вызова команды MS-DOS DIR.

http://allk.ru/book/10/68.html

nerezus
04.04.2008, 08:58
net send Ну просто взять и написать. msdn.microsoft.com - там ищешь по описанию требуемых функций нужные тебе апи. И пишешь.

zythar
04.04.2008, 09:56
а под виндой нельзя функции exec()? можно было бы и с ее помощю реализовать то что ты хочешь

_Great_
04.04.2008, 11:21
а под виндой нельзя функции exec()? можно было бы и с ее помощю реализовать то что ты хочешь
Можно, почему бы и нет. Только system проще

dos999
04.04.2008, 11:45
он на енглише =/ енглишь знаю очень неплохо, но не до того чтоб курить маны.. да и ненужна мне такая махина..
махина... это да... но зато всё есть
Forcer +1 полность поддерживаю ИМХО в качестве справочника лучше чем MSDN нету
енглишь знаю очень неплохо этого достаточно чтобы понять о чём идёт речь

Amoura
06.04.2008, 16:31
// TestVolume.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "windows.h"
#include "iostream.h"

void main()
{
char NameBuffer[MAX_PATH];
char SysNameBuffer[MAX_PATH];
DWORD VSNumber;
DWORD MCLength;
DWORD FileSF;

if (GetVolumeInformation("C:\\", NameBuffer, sizeof(NameBuffer),
&VSNumber, &MSLength, &FileSF, SySNameBuffer, sizeof(SysNameBuffer));
{
cout << NameBuffer << endl;
coun << SysNameBuffer << endl;
coun << SVNumber << endl;
}
}

при компиляции вылетает ошибка, компилирую в Microsoft Visual Studio 2008:
Error 1 fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory c:\documents and settings\admin\my documents\visual studio 2008\projects\testvolume\testvolume\testvolume.cpp 6 TestVolume

Подскажите где взять этот модуль?

ForNeVeR
06.04.2008, 16:34
#include "iostream.h" замени на #include <iostream.h> . Подобные стандартные хедеры пишутся в угловых скобках, а не кавычках.

Amoura
06.04.2008, 17:03
#include "iostream.h" замени на #include <iostream.h> . Подобные стандартные хедеры пишутся в угловых скобках, а не кавычках.

Тоже самое =\

Benzin
06.04.2008, 18:34
1) кавычки
2) добавь using namespace std;
3) не coun, а cout
4) не прально написана SysNameBuffer в GetVolumeInformation
5) не прально MCLength в GetVolumeInformation
5) ошибки в скобках
7) кароче исправил, вот что получилось:


#include <windows.h>
#include <iostream>
using namespace std;

void main()
{
char NameBuffer[MAX_PATH];
char SysNameBuffer[MAX_PATH];
DWORD VSNumber;
DWORD MCLength;
DWORD FileSF;

TCHAR root[]="C:\\";
BOOL info = GetVolumeInformation(root, NameBuffer, sizeof(NameBuffer), &VSNumber, &MCLength, &FileSF, SysNameBuffer, sizeof(SysNameBuffer));

if (info)
{
cout << NameBuffer << endl;
cout << SysNameBuffer << endl;
cout << VSNumber << endl;
}
}

В настройках проекта, поставь Use Multi-Byte Character Set, вместо unicode

horlyk
07.04.2008, 00:08
Народ, вобщем есть немного одна проблемка. тут минипрога которая должна считать колличество символов и при желании пользователя повторять эту процедуру. Она работает только 1 раз, все остальные она проскакивает, не давая ввести слова, автоматически ставля 0 и переходит к вопросу о выборе действия - повторить или выйти. Помогите плз решить эту задачку - я уже много вариантов пробовал - не выходит(

#include<iostream>


using namespace std;

int main()
{
int again;
begin:
char szInput[256];




puts ("\n\n\n\nEnter a sentence: ");
gets(szInput);

printf("\n\n\t\tThe sentence entered is %u characters long)\n",strlen(szInput));
puts("\n\n\t\t\t*** Third task completed ***");

printf("\n\n\nagain? 1 - yes\n");
cin >> again;
if(again == 1)
{

goto begin;}




return 0;
}

hackconnect
07.04.2008, 09:47
не юзайте вы goto! забудьте об этом как о страшном сне 90х годов!

Вынеси свой код в функцию и вызывай while(myfunction())
захочешь выйти напишешь в функции по ифу return false;

echobyte
07.04.2008, 15:01
#include<iostream>

using namespace std;
int again;
char szInput[256];

int main()
{
for(;;)
{
puts ("\n\n\n\nEnter a sentence: ");
cin>>szInput;
printf("\n\n\t\tThe sentence entered is %u characters long)\n",strlen(szInput));
puts("\n\n\t\t\t*** Third task completed ***");
printf("\n\n\nagain? 1 - yes\n");

cin >> again;
if(again!=1)
break;
}
return 0;
}

KSoniX
07.04.2008, 19:08
есть ли в С++ функция которая находит из char массива сходный текст и возвращает его индекс?

horlyk
07.04.2008, 21:49
не юзайте вы goto! забудьте об этом как о страшном сне 90х годов!

Вынеси свой код в функцию и вызывай while(myfunction())
захочешь выйти напишешь в функции по ифу return false;

Может я немного не понимаю, но у меня всерано не выходит. Перенес код в отдельную ф-ю, вызывал ее через мейн так как ты говорил, через иф поставил ретурн фалсе. Не выходит чтото у меня ( Много вариантов перепробовал - все тоже самое( Помогите плз, ну не могу въехать...

z01b
07.04.2008, 22:01
Может я немного не понимаю, но у меня всерано не выходит. Перенес код в отдельную ф-ю, вызывал ее через мейн так как ты говорил, через иф поставил ретурн фалсе. Не выходит чтото у меня ( Много вариантов перепробовал - все тоже самое( Помогите плз, ну не могу въехать...
Чем не устраивает код что дал echobyte?

KindEcstasy
07.04.2008, 22:04
>есть ли в С++ функция которая находит из char массива сходный текст и возвращает его индекс?

Да. bsearch(), заглавник stdlib.h возвращает указатель на элемент массива

KindEcstasy
07.04.2008, 22:06
horlyk
Значит условие ложное раз не выходит ;)

Benzin
07.04.2008, 22:21
2 horlyk: А чем тебя не устраивает вышеописанный вариант вариант?

#include <iostream.h>
using namespace std;

int again;
char szInput[256];

int main()
{
for(;;)
{
puts ("\n\n\n\nEnter a sentence: ");
cin>>szInput;
printf("\n\n\t\tThe sentence entered is %u characters long)\n",strlen(szInput));
puts("\n\n\t\t\t*** Third task completed ***");
printf("\n\n\nagain? 1 - yes\n");

cin >> again;
if(again!=1)
break;
}
return 0;
}
Только надо добавить:
#include <string.h>
#include <stdio.h>

Ну или хочешь то можно и так:

#include <iostream.h>
#include <string.h>
#include <stdio.h>

int myfunc();

int again=1;
char szInput[256];

int main()
{
while (again==1)
{
myfunc();
}

return 0;
}

int myfunc()
{
puts ("\n\n\n\nEnter a sentence: ");
cin>>szInput;
printf("\n\n\t\tThe sentence entered is %u characters long\n",strlen(szInput));
puts("\n\n\t\t\t*** Third task completed ***");
printf("\n\n\nagain? 1 - yes\n");
cin >> again;

if(again!=1)
{
return false;
}
return 0;
}

horlyk
07.04.2008, 23:22
когда я запускаю прогу на выполнение с тем кодом - после введения символов, когда спрашивает о том что сделать - 1 - заново, так там сразу программа завершает работу, типа прес ени кей. Мне же нужно чтоб по вводу еденички программа заново начинала выполняться, тоесть новое выполнение ф-и ввода и подсчета символов, а оно не выходит(

echobyte
08.04.2008, 01:37
когда я запускаю прогу на выполнение с тем кодом - после введения символов, когда спрашивает о том что сделать - 1 - заново, так там сразу программа завершает работу, типа прес ени кей. Мне же нужно чтоб по вводу еденички программа заново начинала выполняться, тоесть новое выполнение ф-и ввода и подсчета символов, а оно не выходит(
хм.. это в вижуал студио добавляеться system("PAUSE"); для того чтоб консолька не закрывалась после выполнения.. там вроде в настройках среды есть опция это отрубить. верхний код я компилил в Dev-Cpp (имхо лучшая среда для console c/c++ http://kent.dl.sourceforge.net/sourceforge/dev-cpp/devcpp-4.9.9.2_setup.exe), бинарник вот http://dump.ru/files/p/p063342791/

Forcer
08.04.2008, 22:56
puts ("\n\n\n\nEnter a sentence: ");
cin>>szInput;
printf("\n\n\t\tThe sentence entered is %u characters long\n",strlen(szInput));

if(again!=1)
{
return false;
}
return 0;
убило...


Мне же нужно чтоб по вводу еденички программа заново начинала выполняться
так и происходит

horlyk
08.04.2008, 23:32
так и происходит

По идее должно происходить, а ты запусти на выполнение этот код и пройдись хоть 2 раза по самой проге с вводом единички - очень удивишься. Ну боян - бояном, почему в первый раз оно работает нормально, а во второй, когда вводишь 1 оно просто "пропускает" ввод символов, автоматически ставля 0 в количестве символов и задавая вопрос о том что нужно делать - выйти или не выйти? ппц, такой боян происходит с puts, а с cin работает нормально, но не так как этого хочется(если одно слово вводишь - нормально, а если 2 или более там уже дурдом творится а также если символ какойто, да и к тому же пробелы не считает). Меня puts устраивает, но почему оно пропускает его после повтора?
Кто поможет, тому сразу +10)

Вот мой код после миллиона вариантов:
#include "stdafx.h"
#include <windows.h>
#include <iostream>
using namespace std;

int i = 1;
int kol;

int main()
{
char ws[256];
char wwod[] = "введите слово, предложение или еще чтото";
char res[] = "то что вы ввели содержит такое колличество символов: ";
char quit[] = "если вы хотите выйти - введите любое число, а если повторить - введите 1";

CharToOem(wwod,wwod);
CharToOem(res,res);
CharToOem(quit,quit);

while (i==1) {

puts(wwod);
gets (ws);
kol = strlen(ws);
cout << res << kol << endl;
puts(quit);
cin >> i;

if(i != 1)
{

exit(1);
};

}
return 0;
}

iv.
08.04.2008, 23:54
господа, вопрос может быть не совсем по тематике топика, но всё же не подскажете где скачать DDK для WinNT 4.0?

De-visible
08.04.2008, 23:59
_http://www.microsoft.com/whdc/devtools/ddk/default.mspx

iv.
09.04.2008, 00:07
_http://www.microsoft.com/whdc/devtools/ddk/default.mspx
там я уже был, и насколько понял, там только для win2003. если ошибаюсь, плиз более конкретный линк.

horlyk
09.04.2008, 00:14
это, про меня не забудьте) мой топик выше)
Кстати, эхобайт, пасиб за прогу, я качнул, глянул - вроде интуитивный интерфейс) буду там для консоли писать)

reversys
09.04.2008, 00:31
2horlyk
#include <iostream>

using namespace std;


int main()
{
int again=1;
char buff[512];
char b;

for(;;)
{
cin.getline(buff,512);
cout<<strlen(buff)<<endl;
cin>>again;
scanf("%c",&b);
if(again!=1)
break;
}

return 0;
}
Например так.

horlyk
09.04.2008, 01:02
Например так.


Пробовал ввести более 2-х слов?) получается баг) Попробуй) у меня уже такой вариант был) с puts работает без бага но с тем глюком про который я писал выше - при повторном выполнении оно просто пропускает ввод символов, автоматически ставля 0, и сразу спрашивая что делать. С сиинами выходит, но только с багом, как в твоем примере. Ппц, уже 2-й день ломаю голову над этим приколом

Forcer
09.04.2008, 02:01
у меня пример reversys работает с несколькими словами. Еще вариант : cin.clear()

reversys
09.04.2008, 02:47
horlyk я пробовал и более двух и более трёх тоже.

ForNeVeR
09.04.2008, 06:07
horlyk, может, дело в вашем компиляторе? У меня в VS 2008 всё работает с 2-3 словами с несколькими проходами нормально.

Forcer
09.04.2008, 11:44
я на g++ компилил.

KSoniX
09.04.2008, 15:41
как на вс2005 в MFC аппликэшене сделать чтобы у CListBox`а появилась нижний ScrollBar. Поставил опцию Horizontal Scroll но полоса не работает. помогите pls. :( :confused:

Fduch
09.04.2008, 16:19
Попробуй функцию SetHorizontalExtent (int Extent)
где Extent размер в ПИКСЕЛЯХ ширины полосы прокрутки

ICQ Hool
10.04.2008, 20:49
нужен код для отправки файла(одного) на фтп
буду очень благодарен ;)

KSoniX
11.04.2008, 18:21
ICQ Hool на каком языке ?
на с/с++ WININET за инфой в MSDN

xXvladXx
11.04.2008, 22:11
какой компилятор юзать для написание зверей?
висуаль с++ не покатит он пашет тока на тачках с висуаль студио
боланд вроде делает большой размер выходного файла
да и после делфи опять на борланд не оч хочется...

reversys
11.04.2008, 23:50
висуаль с++ не покатит он пашет тока на тачках с висуаль студио
всё работает и без вижал студио. смотри настройки проэкта и что в своём проэкте используешь.

xXvladXx
12.04.2008, 01:33
всё работает и без вижал студио. смотри настройки проэкта и что в своём проэкте используешь.
хм а что уберать надо?

reversys
12.04.2008, 02:28
Просто когда начинаешь писать - подумай что собираешься использовать.
Например MFC - совершенно ни к чему в программе которая должна незаметно поработать на компьютере жертвы. Мало того что для запуска будут нужны dll которые на сколько я помню входят в состав винды только начная с xp sp2, так ещё и размер будет не супер.

echobyte
12.04.2008, 13:32
хм а что уберать надо?
выбирать win32 application

iv.
15.04.2008, 18:00
Ворпрос по CryptoAPI:
Хочу сгенерировать хэш (криптопровайдер не важен). Смотрю МСДН, тырю оттуда пример, который оказывается слегка бажным. В общем довести его до ума мне так и не удалось. Кусок:
CryptAcquireContext(&hProv, NULL, MS_STRONG_PROV, PROV_RSA_FULL, CRYPT_NEWKEYSET);
CryptGetUserKey(hProv, AT_SIGNATURE, &hKey);

Вторая функция возвращает ошибку NTE_NO_KEY - The key requested by the dwKeySpec parameter does not exist. Т.е. типа не разрешает мне использовать параметр AT_SIGNATURE. Кто-нибудь сталкивался?

Patrik
19.04.2008, 02:44
Господа, подскажите, пожалуйста, возможно ли .avi файл скомпилить вместе с .exe, чтобы не ложить его вместе с проектом в папку? Может существуют какие-нибудь компоненты для этого?

reversys
19.04.2008, 03:33
Добавление в ресурсы проекта не подходит?

Patrik
19.04.2008, 04:13
Добавление в ресурсы проекта не подходит?
Проблема в том, что при компиляции с этим файлом или без размер .exe файла не изменятся. Как я понимаю, что-то там не так)

criz
19.04.2008, 12:40
Товарищи, как программно завершить инет-коннект? Нужно, чтобы при коннекте к определенному серверу, юзер получал "Error 404: Not Found".
З.Ы. Сниффер уже готов для этого :)

ICQ Hool
19.04.2008, 13:25
ребята, выручайте есть исходник программы для отправки почты - http://webfile.ru/1884941
пожалуйста помогите добавить авторизацию, компилятора нету под рукой...
или если есть то какие есть сервера без авторизации?

Kaimi
19.04.2008, 13:38
или если есть то какие есть сервера без авторизации?

Попробуй
mail.np.by
mail.bluebottle.com
smtp.mtu-net.ru

ICQ Hool
19.04.2008, 13:47
Попробуй
mail.np.by
mail.bluebottle.com
smtp.mtu-net.ru
не прокатило, там нужна авторизация ((

Kaimi
19.04.2008, 14:31
не прокатило, там нужна авторизация ((

На мту точно не нужна авторизация, только что проверял, программу лучше свою проверь, может она вообще не отправляет

TrUnk_
19.04.2008, 21:13
Алгоритмы обхода фаерволлов win/nt на общей основе, хотелось бы узнать где можно достать мб ссылки укажете очень надо, еще нужны нестандартные непалящиеся методы обхода на c/asm тоже линки киньте пожалуйста

Jes
19.04.2008, 22:34
forum точка wasm.ru

criz
19.04.2008, 22:43
Товарищи, как программно завершить инет-коннект? Нужно, чтобы при коннекте к определенному серверу, юзер получал "Error 404: Not Found", ну или ниче не получал.
Вобщем, нужно закрыть доступ к определенному сайту.
З.Ы. Сниффер уже готов для этого :)

Delimiter
20.04.2008, 00:11
а может.... тебя RST-киллер устроит??? Тогда в архивах xakep.ru или сам сделай формирование TCP пакета с RST флагом !

criz
20.04.2008, 00:25
Delimiter, спасибо за подсказку. Будем копать :)

ForNeVeR
20.04.2008, 09:25
А вариант с изменением hosts-файла не подходит?

criz
20.04.2008, 11:20
Не, принцип работы немного схож с фаером. Я указываю ИП(или несколько ИПов) и прога должна блокировать/прерывать соединение.
В БСД есть tcpdrop...нужно примерно такое написать :)

ZipaCna
20.04.2008, 14:42
помогите разобраться почему этот код работает не так как надо....

#include<iostream>
using namespace std;

int main(int argc, char *argv[])
{
char **message_buf;

message_buf = new char*[argc];
for(int u=0;argv[u] != NULL;u++)message_buf[u]=new char[sizeof(argv[u])];


for(int i=0; argv[i] != NULL; i++)
{
strncpy(message_buf[i], argv[i], sizeof(argv[i]));
cout<<"w["<<i<<"]:"<<message_buf[i]<<endl;
}

for(int i=0;argv[i] != NULL;i++)delete [] message_buf[i];
delete []message_buf;
}

кампилю g++(linux)

Запускаю: ./client sdgdfg dfg dfg df gdfg

результат
w[0]:./cl
w[1]:sdgd
w[2]:dfg
w[3]:dfg
w[4]:df
w[5]:gdfg

как видете выводит только первые 4 символа... не предлогать переписать код, важно найти ошибку именно в этом.