ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

19.12.2009, 21:47
|
|
Постоянный
Регистрация: 06.05.2007
Сообщений: 393
Провел на форуме: 1510937
Репутация:
398
|
|
Какой компонент нужен для работы с графами в C++ Builder и рисование (карта сети) по хаб устройствам ?
Для C++ Builder v6 или RAD Studio 2010, или где посмотреть пример работы Boost Graph Library для виндовс ? 
|
|
|

19.12.2009, 21:57
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме: 2868783
Репутация:
414
|
|
или где посмотреть пример работы Boost Graph Library для виндовс
По графам в бусте даже небольшая книга написана, так и ищи в гугле "C++ Boost Graph Library book"
|
|
|

19.12.2009, 22:01
|
|
Постоянный
Регистрация: 06.05.2007
Сообщений: 393
Провел на форуме: 1510937
Репутация:
398
|
|
Сообщение от anasta
Можно ли как-нибудь реализовать отправку e-mail по средствам C?
Код:
// Yuri Zarechny for News2News (c) 2006
#include "stdafx.h"
//#include < windows.h >
#include < winsock2.h > //link ws2_32.lib
#include "conio.h"
struct _sendmail {
LPSTR host;
LPSTR IP;
LPSTR sender;
LPSTR recip;
LPSTR subject;
LPSTR body;
SOCKET hSocket;
} sendmail;
BOOL InitSock(LPSTR Server)
{
WSADATA wsd;
if (WSAStartup(MAKEWORD(2,2), &wsd) > 0)
{
printf("Winsock init error: %d\n", WSAGetLastError());
return false;
}
return true;
}
LPSTR GetIP(LPSTR h)
{
in_addr ia;
hostent* hbn;
unsigned int addr;
if (isalpha(h[0])) hbn = gethostbyname(h);
else
{
addr = inet_addr(h);
hbn = gethostbyaddr((char *)&addr, 4, AF_INET);
}
if (hbn==0) return "";
ia.S_un.S_addr=*(DWORD *)hbn->h_addr_list[0];
return inet_ntoa(ia);
}
BOOL ValidateEnvelope(LPSTR h, LPSTR r, LPSTR s, LPSTR *ip)
{
if (h=="" || r=="" || s=="")
{
printf("Invalid host or sender/recipient email address\n");
return false;
}
*ip=GetIP(h);
if (*ip=="")
{
printf("Can not resolve host name %s to ip address\n", h);
return false;
}
return true;
}
BOOL ConnectTo()
{
const u_short SMTP_PORT=25;
sockaddr_in sa;
sa.sin_family=AF_INET;
sa.sin_addr.S_un.S_addr=inet_addr(sendmail.IP);
sa.sin_port=htons(SMTP_PORT);
return (connect(sendmail.hSocket, (SOCKADDR *)&sa, sizeof(sa))==0);
}
BOOL snd(LPSTR txt, bool resp)
{
char tx[4096];
sprintf(tx, "%s\r\n", txt);
if (send(sendmail.hSocket, tx, strlen(tx),0)==SOCKET_ERROR)
{
printf("%s%s\n", tx, " - send operation failed.");
return false;
}
if (!resp) return true;
while (true)
{
char rcv[1024];
char outp[255]="";
HANDLE hEvent=WSACreateEvent();
WSAEventSelect(sendmail.hSocket,hEvent,FD_READ);
DWORD nWait=WSAWaitForMultipleEvents(1, &hEvent, 0, 1000, 0);
WSACloseEvent(hEvent);
if (nWait!=0) return false;
recv(sendmail.hSocket, rcv, sizeof(rcv),0);
strncpy(outp, rcv, strcspn(rcv, "\n")+1);
printf("%s\n", outp);
}
return true;
}
BOOL SendMail()
{
if (!ValidateEnvelope(sendmail.host, sendmail.recip,
sendmail.sender, &sendmail.IP)) return false;
char tmp[255];
if (sendmail.sender=="" || sendmail.recip=="" ||
sendmail.body=="" || sendmail.subject=="") return false;
sendmail.hSocket=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sendmail.hSocket==SOCKET_ERROR) return false;
if (!ConnectTo())
{
printf("Unable to connect to the server.\n");
return false;
}
snd("HELO", true);
sprintf(tmp, "%s%s%s", "MAIL FROM:<", sendmail.sender, ">");
snd(tmp, true);
sprintf(tmp, "%s%s%s", "RCPT TO:<", sendmail.recip, ">");
snd(tmp, true);
snd("DATA", true);
sprintf(tmp, "%s%s", "From: ", sendmail.sender);
snd(tmp, false);
sprintf(tmp, "%s%s", "To: ", sendmail.recip);
snd(tmp, false);
sprintf(tmp, "%s%s", "Subject: ", sendmail.subject);
snd(tmp, false);
snd("", false);
snd(sendmail.body ,false);
snd(".", true);
snd("NOOP", true);
snd("QUIT", true);
closesocket(sendmail.hSocket);
return true;
}
void _tmain() {
// provide valid host name and email addresses
sendmail.host = "smtp.myisp.ca";
sendmail.sender = "sender@myisp.ca";
sendmail.recip = "recipient@myisp.ca";
sendmail.subject = "Testing Winsock SMTP functionality";
sendmail.body = "Test message:\n\n"
"Windows Sockets (Winsock) provides a general-purpose networking "
"application programming interface (API) based on the socket "
"interface from the University of California at Berkeley.\n";
if (InitSock(sendmail.host))
{
SendMail();
WSACleanup();
}
printf("\nPress ENTER to quit");
getch();
return;
}
|
|
|

19.12.2009, 22:04
|
|
Постоянный
Регистрация: 06.05.2007
Сообщений: 393
Провел на форуме: 1510937
Репутация:
398
|
|
Сообщение от razb
По графам в бусте даже небольшая книга написана, так и ищи в гугле "C++ Boost Graph Library book"
есть какая то альтернатива постройки карты сетей (+ подсети из Switch тоже выводить) ?
Последний раз редактировалось PandoraBox; 19.12.2009 в 22:30..
|
|
|

19.12.2009, 22:33
|
|
Banned
Регистрация: 07.10.2009
Сообщений: 128
Провел на форуме: 725524
Репутация:
63
|
|
Господа, напишите код на Visual С++:
Вывождение графика ф-ций: y=3x-cos(x) - 1
Буду дико благодарен!
|
|
|

19.12.2009, 23:59
|
|
Познающий
Регистрация: 27.09.2008
Сообщений: 57
Провел на форуме: 265628
Репутация:
23
|
|
Вывождение ну зачем так людей пугать)
|
|
|

20.12.2009, 00:29
|
|
Постоянный
Регистрация: 24.11.2008
Сообщений: 416
Провел на форуме: 910902
Репутация:
100
|
|
Сообщение от «Adult Holding»
Господа, напишите код на Visual С++:
Вывождение графика ф-ций: y=3x-cos(x) - 1
Буду дико благодарен!
как раз пишу, только на билдере, могу дать сам функцию подставишь...только она не только график выводит...
Собственно мой вопрос
- язык с++ билдер
-имеется юнит1.h, юнит2.h
-в юнит1.cpp прописан класс, в классе функция fx(х) вычисляет функцию по х
немогу заюзать класс в юнит2.h как понял надо extern'ом тащить, класс вытаскиваю, дальше пытаюсь определить переменную для этого класса ни хера кароче...как правильно подключить этот класс? спасибо
|
|
|

20.12.2009, 01:08
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме: 2868783
Репутация:
414
|
|
Господа, напишите код на Visual С++:
Вывождение графика ф-ций: y=3x-cos(x) - 1
Буду дико благодарен
Подобные запросы пишем в соседнюю тему с лабами, тут задаем конкретные вопросы.
есть какая то альтернатива постройки карты сетей (+ подсети из Switch тоже выводить) ?
Немного не ясно что тебе необходимо сделать, поподробней ...
Собственно мой вопрос
- язык с++ билдер
-имеется юнит1.h, юнит2.h
-в юнит1.cpp прописан класс, в классе функция fx(х) вычисляет функцию по х
немогу заюзать класс в юнит2.h как понял надо extern'ом тащить, класс вытаскиваю, дальше пытаюсь определить переменную для этого класса ни хера кароче...как правильно подключить этот класс? спасибо
У тебя в юнит1.h обьявление класса, в юнит1.срр реализация так?
немогу заюзать класс в юнит2.h
инклюдь сюда первый хэдэр.
Последний раз редактировалось razb; 20.12.2009 в 01:13..
|
|
|

20.12.2009, 01:23
|
|
Постоянный
Регистрация: 24.11.2008
Сообщений: 416
Провел на форуме: 910902
Репутация:
100
|
|
юнит1:
грубо говоря
Код:
class myClass
{
float x;
public:
float adr,bdr,n,a1,b1,c,x2,x3,x1,Xmin,Ymin,h1,eps1,num;
bool flagForm3,FlagF;
int k;
float AllEx[3];
//--------------------------Функция---------------------
float fx(float num)
{
x=num;
return (2*x*x-12.5)*cos(x);
}
//тут еще функции
}
myClass calculate;
//........и дальше текст еще проги..............
юнит2
Код:
#include "Unit1.h"
void __fastcall TForm3::FormShow(TObject *Sender)
{float a,b,h,Y;
int x0,y0;
a=StrToFloat(Form1->Edit1->Text);
b=StrToFloat(Form1->Edit2->Text);
Y=calculate.fx(a);
h=StrToFloat(Form1->Edit3->Text);
}
говорит не определенный символ calculate и в юнит2 если написать myClass calculate; в объявлении переменных говорит ошибка описания переменных, хотя инклудить не рекомендуют но мне уже чет пофиг, но как то можно еще extern'ом, ваще инфу не могу найти...
ПС: реализация в юнит2, а описание в юнит1...
Последний раз редактировалось SaiRus; 20.12.2009 в 01:26..
|
|
|

20.12.2009, 01:36
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
зачем объект объявляешь прямо в хидере с описанием класса? его обычно объявляют в том классе, который будет его использовать. так же у тебя будут проблемы, когда ты проинклюдишь этот класс более чем в одном файле. нужно будет ставить модификатор static.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|