ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 18.06.2009, 02:31
Аватар для Ra$cal
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

ну вообще суть с++ не в гуи =) для начала стоит научиться использовать ооп. создавать классы, распределять по ним методы, фтыкнуть полиморфизм и наследование. идеально для этого подходит консольное приложение. реши, чего именно ты хочешь добиться. писать на с++ или просто окошки на с++ делать? если первое - то почитай дейтела "как программировать на с++". если второе - то не советую для этого изучать с++ =) очень быстро поймешь, что с++ несколько отличается от того же делфи. тут нада все таки продумывать архитектуру программ, да и управление памятью по началу без опыта будет давать кучу проблем.
по гуям есть смысл почитать "Win32 API. Разработка приложений для Windows" Щупак Ю.
 
Ответить с цитированием

  #12  
Старый 18.06.2009, 09:33
Аватар для _Great_
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

Цитата:
Сообщение от m0Hze  
Вот,люди,пока не забыл,задам наиглупейший но очень меня волнующий вопрос.
Как в C++ прорисовываеться интерфейс у программы под win32? Прописываеться кодом каждая кнопка и окошко Просто я недалеко зашел,но успел увидить,что привычной для меня в Dekphi панели кнопочек,окошечек,боксов - нет С++ Игшдвук edbltk - tcnm?f d С++ (Visual) - нет =*(
Диалог бокс!
 
Ответить с цитированием

  #13  
Старый 18.06.2009, 11:14
Аватар для Fata1ex
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

А я бы не советовал читать Щупака, гораздо лучше - Рихтера
 
Ответить с цитированием

  #14  
Старый 18.06.2009, 15:20
Аватар для Ra$cal
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

рихтер на другом фокусирует внимание.
 
Ответить с цитированием

  #15  
Старый 15.11.2009, 03:53
Аватар для m0Hze
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

Цитата:
Сообщение от s_p_a_m  
Код:
#include <windows.h>

#include <stdio.h>
#include <string.h>
#pragma comment(lib, "ws2_32.lib")

char* OpenURL(char *url) {
    WSADATA lpWSAData;
    SOCKET s;

    // Проверим на правильность введенный адрес.
    // Он должен начинаться с "http://"
    if (memcmp(url,"HTTP://",7)!=0 && memcmp(url,"http://",7)!=0) return(NULL);
    url+=7;

    // Инициализация библиотеки Ws2_32.dll.
    if (WSAStartup(MAKEWORD(1,1),&lpWSAData)!=0) return(NULL);


    // Получим имя хоста, номер порта и путь ----------------------------

    char *http_host=strdup(url); // Имя хоста (HTTP_HOST)
    int port_num=80;             // Номер порта по умолчанию (HTTP_PORT)
    char *http_path=NULL;        // Путь (REQUEST_URI)

    char *pch=strchr(http_host,':');
    if (!pch) {
        pch=strchr(http_host,'/');
        if (pch) {
            *pch=0;
            http_path=strdup(pch+1);
            }
        else http_path=strdup("");
        }
    else {
        *pch=0;pch++;
        char *pch1 = strchr(pch,'/');
        if (pch1) {
            *pch1=0;
            http_path=strdup(pch1+1);
            }
        else http_path=strdup("");

        port_num = atoi(pch);

        if (port_num==0) port_num = 80;
        }

    // Поучаем IP адрес по имени хоста
    struct hostent* hp;
    if (!(hp=gethostbyname(http_host))) {
        free(http_host);
        free(http_path);
        return(NULL);
        }

    // Открываем сокет
    s=socket(AF_INET, SOCK_STREAM, 0);
    if (s==INVALID_SOCKET) {
        free(http_host);
        free(http_path);
        return(NULL);
        }

    // Заполняем структуру sockaddr_in
    struct sockaddr_in ssin;
    memset ((char *)&ssin, 0, sizeof(ssin));
    ssin.sin_family = AF_INET;
    ssin.sin_addr.S_un.S_un_b.s_b1 = hp->h_addr[0];
    ssin.sin_addr.S_un.S_un_b.s_b2 = hp->h_addr[1];
    ssin.sin_addr.S_un.S_un_b.s_b3 = hp->h_addr[2];
    ssin.sin_addr.S_un.S_un_b.s_b4 = hp->h_addr[3];
    ssin.sin_port = htons(port_num);

    // Выводим IP адрес хоста, с которым будем соединятся
    printf("Conecting to %d.%d.%d.%d...",(unsigned char)hp->h_addr[0],
                                         (unsigned char)hp->h_addr[1],
                                         (unsigned char)hp->h_addr[2],
                                         (unsigned char)hp->h_addr[3]);

    // Соединяемся с хостом
    if (connect(s, (sockaddr *)&ssin, sizeof(ssin))==-1) {
        free(http_host);
        free(http_path);
        printf("Error\n");
        return(NULL);
        }
    printf("Ok\n");

    // Формируем HTTP запрос
    char *query=(char*)malloc(2048);

    strcpy(query,"GET /");
    strcat(query,http_path);
    strcat(query," HTTP/1.0\nHost: ");
    strcat(query,http_host);
    strcat(query,"\nUser-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
    strcat(query,"\nAccept: */*\n\n");


    // Выводим HTTP запрос
    printf("%s",query);

    // Отправляем запрос серверу
    int cnt=send(s,query,strlen(query),0);

    // Освобождаем память
    free(http_host);
    free(http_path);
    free(query);

    // Проверяем, не произошло ли ошибки при отправке запроса на сервер
     if (cnt==SOCKET_ERROR) return(NULL);

    cnt=1;

    // Получаем ответ с сервера ---------------------------------

    int size=1024*1024; // 1Mb
    char *result=(char*)malloc(size);
    strcpy(result,"");
    char *result_ptr=result;

    while (cnt!=0 && size>0) {
        cnt=recv (s, result_ptr, sizeof(size),0);
        if (cnt>0) {
            result_ptr+=cnt;
            size-=cnt;
            }
        }
    *result_ptr=0;

    // Деинициализация библиотеки Ws2_32.dll
    WSACleanup();

    return(result);
    }

void main(void) {
    char *result=OpenURL("http://www.antichat.ru/");
    if (result) {
        printf("%s",result);
        free(result);
        }
    else {
        printf("Error # WSABASEERR+%d\n",WSAGetLastError()-WSABASEERR);
        }
	getchar();
	getchar();
    }
Апики,а как в указанном выше примере,устроить многопоточность? Тоесть,например есть массив с адресами,и он по ним пробегает с потоками.
 
Ответить с цитированием

  #16  
Старый 15.11.2009, 14:08
Аватар для razb
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


Отправить сообщение для razb с помощью ICQ
По умолчанию

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

  #17  
Старый 15.11.2009, 14:13
Аватар для Ra$cal
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

если вдруг не понятно по каким словам искать

http://tinyurl.com/yhrk7y3
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полная обзорная статья о Google PR [ANGEL] Статьи 6 16.02.2009 18:31
Живые прокси xdx ICQ 111 15.04.2007 13:10
Proxy Kozak-Scv Анонимность 2 11.02.2007 17:28



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


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




ANTICHAT.XYZ