[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Sifon110

    Sifon110 New Member

    Joined:
    13 Mar 2011
    Messages:
    34
    Likes Received:
    1
    Reputations:
    0
    Здравствуйте. Создал диалог в ресурсах. Подскажите пожалуйста, как узнать его хэндл по ID, что например показать через ShowWindow. Или как вызвать этот диалог?
     
  2. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    GetDlgItem
     
    _________________________
  3. Sifon110

    Sifon110 New Member

    Joined:
    13 Mar 2011
    Messages:
    34
    Likes Received:
    1
    Reputations:
    0
    Делаю так, но почему-то диалог не показывается:
    ShowWindow(GetDlgItem(hWnd, IDD_DIALOG1), SW_SHOW);

    В чем может быть проблема?
     
  4. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms645465%28v=vs.85%29.aspx
     
    _________________________
  5. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    как записать строку зпдом на перёд?
     
  6. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    std::reverse()
     
    1 person likes this.
  7. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    сенкс, а в зеркальном отражениии сроку както можно сделать?
     
  8. neviens

    neviens Member

    Joined:
    9 Oct 2013
    Messages:
    82
    Likes Received:
    28
    Reputations:
    3
    Да, если зеркальный фонт использовать, например kcab.ttf
     
  9. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    Всем привет, хотел научится работать с сокетами, и застрял на определённом моменте

    выдает ошибку 10049, причём я не могу понять почему, адресс правильно указал, порт тоже....

    вот сам код

    PHP:
    #include <stdlib.h>
    #include <stdio.h>
    #include <winsock2.h>
    #include <windows.h>
    #include <ws2tcpip.h>
    #include <iostream>
     
    #pragma comment(lib,"ws2_32.lib")



    using namespace std;

    void main()  {

         
    WSADATA wsaData;
     
        if (
    WSAStartup (0x0202, &wsaData)) 
        {
            
    //Функция возвращает ненулевое значение, инициализация не удалась
            
    cout << "Error WSAStartup " << WSAGetLastError() <<"\n";
           
        }
        
        
    //Создание сокета Server
        
    SOCKET Server;
            
    Server socket (AF_INETSOCK_STREAM0);
            
    //AF_INET протокол Интернета (IP)
            //SOCK_STREAM потоковый сокет
            //0 по умолчанию выбирается TCP протокол
        
        //Если не удалось создать сокет
        
    if (Server==INVALID_SOCKET)
        {
            
    cout << "Socket failed " << WSAGetLastError() <<"\n";
            
    WSACleanup (); // Деинициализация библиотеки WinSock
            
     
        
    }
        
        

         
    //Связывание сокета Server с локальным адресом (IP-адрес узла и номер порта)
        
    sockaddr_in ServerAddr;
        
    ServerAddr.sin_family AF_INET;
        
    ServerAddr.sin_port htons(8080);
       
        
    ServerAddr.sin_addr.S_un.S_addr inet_addr("213.155.26.137");
                
        if (
    bind (Server, (struct sockaddr*)&ServerAddrsizeof(ServerAddr)))
        {
            
    //Функция возвращает ненулевое значение, ошибка
            
    cout << "Bind failed " << WSAGetLastError() <<"\n";
            
    closesocket(Server); //Закрываем сокет Server
            
    WSACleanup (); // Деинициализация библиотеки WinSock
            
        
    }   

        
    system("pause");
    }
     
  10. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    WSAEADDRNOTAVAIL (10049) Cannot assign requested address, суть проблемы ты не можешь забиндить на данном ип, слушай другой адрес "localhost" (127.0.0.1) или тот, который назначен интерфейсу машины
     
  11. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    а зачем мне другой ip если я хочу приконектется к тому который нужен мне, или я тебя непонял??
     
  12. neviens

    neviens Member

    Joined:
    9 Oct 2013
    Messages:
    82
    Likes Received:
    28
    Reputations:
    3
    Данные компа (IP, port), к которому надо коннектится, отдаются в connect(), в bind() - данные вызывающего компа.
     
  13. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    qaz, если ты реализуешь сервер, то ты должен настроить сокет на прослушку определенного порта на нужном ip адресе машины с помощью вызова апишки bind, если ты реализуешь клиента, то ты инициируешь подключение к определенному ip и порту, с помощью вызова connect, ты же, видимо, пытаешься реализовать клиента методами сервера
    почитай msdn по winsock
     
    #7753 alexey-m, 23 Jan 2014
    Last edited: 23 Jan 2014
  14. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    мм наверно нетуда полез, короче мне нужно научится отправляь гет и пост запросы на сайт, есть у когонить готовй пример или ссылки где можно почитать(только нормальные)
     
  15. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    хм, если нужно просто загружать данные по http (GET | POST запросами), то вполне подойдут сокеты (самый примитивный клиент есть в том же msdn) можно еще тут глянуть, но если нужна работа с куками, https и прочие приблуды, то скорее и лучше посмотреть в сторону "готовых" решений в виде cURL или WinINet / WinHTTP, чем изобретать велосипед
     
    1 person likes this.
  16. darkwing_duk

    darkwing_duk New Member

    Joined:
    25 Jun 2013
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Помогите, пожалуйста! Имеем структуру pupil, в ней находится вектор scores. Создаем вектор структур pupil с именем pupils. Как мне присвоить или сравнить элемент вектора scores, обращаясь из pupils?
    Code:
    #include<fstream>
    #include<vector>
    #include <algorithm>
    #include<iostream>
    #include<string>
    using namespace std;
    ifstream fin("Input file.txt");
    ofstream fout("Output file.txt");
    struct pupil{//Наша структура
    	string Name;
    	string LastName;
    	vector<int> scores [4];
    };
    int CheckIn(int min, int max, string massage){//проверяем допустимость значения по условию
    	int b;
    	fin >> b;
    	if (!(b<=max &&b>min)) {
    		fout << massage;
    		return -1;
    	}
    	return b;
    }
    string CheckInStr(int min, int max, string massage){
    	string b;
    	fin >> b;
    	if (!(b.size()<=max &&b.size()>min)) {
    		fout << massage;
    		return "error";
    	}
    	return b;
    }
    
    int main(){
    	setlocale(LC_ALL, "Russian");
    	int numb;
    	numb = CheckIn(10, 100, "Недопустимое значение чилса учащихся!\n");
    	if (numb == -1)return 1;
    	vector<pupil> pupils(numb);
    	for (int i = 0; i < numb;i++){
    		pupils[i].LastName = CheckInStr(0, 20, "Недопустимое количество символов в фамилии ученика!\n");
    		if (pupils[i].LastName == "error")return 1;
    		pupils[i].Name = CheckInStr(0, 15, "Недопустимое значение символов в имени ученика!\n");
    		if (pupils[i].Name == "error")return 1;
    		for (int j = 0; j < 3; j++){
    			pupils[i].scores[j] = CheckIn(1, 5, "Недопустимое значение ");//место обращения к эелементу
    		}
    В последней строке компилятор плюётся на присваивание.
     
  17. wanttoask

    wanttoask New Member

    Joined:
    30 Sep 2012
    Messages:
    81
    Likes Received:
    1
    Reputations:
    0
    Где найти нормальный туториал с хуками, обработка которых происходит в дллке? Перегуглил все что можно, принцип понимаю, но программа отказывается получать адрес функции в дллке.
     
  18. Sifon110

    Sifon110 New Member

    Joined:
    13 Mar 2011
    Messages:
    34
    Likes Received:
    1
    Reputations:
    0
    Всем привет. Подскажите пожалуйста, где можно найти хорошие задачи(упражнения/лабораторные) по ООП? Не типа там что-то вроде "описать класс, в нем например два поля, описать конструктор и методы, которые делают какие-нибудь операции с этими полями". А что-нибудь посерьезнее. Спасибо :)
     
  19. herfleisch

    herfleisch Elder - Старейшина

    Joined:
    7 Jan 2009
    Messages:
    579
    Likes Received:
    203
    Reputations:
    13
    Когда-то в университете нам в качестве курсовой давали задание написать класс String. Это очень хорошее упражнения для основательного закрепления материала по ООП.

    Попробуй реализовать класс String, со всеми операторами выражений, методами и свойствами. Закрепишь материал как нельзя лучше.

    Класс должен перегружать операторы, например, для использования таким образом:

    Code:
    String string1 = new String("My first string.");
    String string2 = string1 + " Ololo.";
    
    Попробуй. Откроешь для себя много нового и освоишь ООП как нельзя лучше.
     
    1 person likes this.
  20. Lazy

    Lazy New Member

    Joined:
    19 Jul 2011
    Messages:
    94
    Likes Received:
    2
    Reputations:
    3
    Посмотри Философию C++ Эккеля . Там имхо нормальные задания . Правда они привязаны к самой книге , так что возможно придется и ее почитать .
    Вообще не до конца понятно какая именно сложность тебя интересует .
     
Thread Status:
Not open for further replies.