[ 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. seregkaz

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

    Joined:
    7 Aug 2009
    Messages:
    104
    Likes Received:
    49
    Reputations:
    15
    я не вижу ответа, что тут некто не знает с++ ? не верю
     
  2. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Ещё 10 раз напиши это и получишь неожиданный приз...
     
    _________________________
  3. herfleisch

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

    Joined:
    7 Jan 2009
    Messages:
    579
    Likes Received:
    203
    Reputations:
    13
    Программа выглядит примерно так:

    Code:
    
    #include <brain.h>
    #include <iostream>
    
    using namespace std;
    
    int main(void)
    {
        Открыть_MSDN();
        int Result = Найти_соответствующую_функцию(POWER_OFF);
       if (!Result)
           cout << "Учись пользоваться MSDN" << endl;
        else
        {
             Вставить_в_нужный_кусок_кода($Result);
         }
         return 0;
    }
    
    
     
    #3763 herfleisch, 24 Sep 2009
    Last edited: 24 Sep 2009
    1 person likes this.
  4. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Видимо так

    int main()
    {
    system("shutdown -r");
    return 0;
    }
     
    _________________________
    1 person likes this.
  5. Glazz

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

    Joined:
    9 Aug 2008
    Messages:
    116
    Likes Received:
    7
    Reputations:
    0
    system() обращается к cmd, значит, там все команды cmd
     
  6. n4e/\@

    n4e/\@ Elder - Старейшина

    Joined:
    6 May 2008
    Messages:
    138
    Likes Received:
    17
    Reputations:
    0
    Не нашел, потому что shutdown это отдельная программа вызываемая из консоли, а не встроенная команда в CMD
     
  7. click

    click Member

    Joined:
    26 Apr 2009
    Messages:
    114
    Likes Received:
    25
    Reputations:
    0
    Mitnick17,
    в cmd набрать help
    еще
    %windir%/help/ntcmds.chm
     
  8. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    Как в Qt4 работать виджеты на форме, в потоке?
    Пробовал так:

    Имеется поток:
    Code:
    class Func : public QThread, public Ui::QTsquareClass
    {
    public:
          void run()
    	  {
    		QString str;
    		str=aA->text(); //вылетает здесь, обращается к не инициализированному элементу
    	  }
    };
    связывю кнопку и поток:
    Code:
    QTsquare::QTsquare(QWidget *parent, Qt::WFlags flags)
    	: QDialog(parent, flags)
    {
    	ui.setupUi(this);
    	Func *thr=new Func;
    	
    	QObject::connect(ui.button,SIGNAL(clicked()),thr,
                SLOT(start()));
    	
    }
    Выше приведенные действия ни к чему не приводят, прога вылетает.
    Не могу придумать как передать указатель на созданную форму в поток.


    UPD:

    Разобрался вопрос снимается.
     
    #3768 \\ChaOs//, 24 Sep 2009
    Last edited: 25 Sep 2009
  9. click

    click Member

    Joined:
    26 Apr 2009
    Messages:
    114
    Likes Received:
    25
    Reputations:
    0
    Mitnick17, а тебе, что нужно? "не встроенные программы", это программы, находящиеся в директориях которые прописаны в path(набрать в path в cmd).
    >>%windir%/help/ntcmds.chm нужно в cmd набрать?
    провести столь безабидный эксперемент быстрее, чем написать сообщение на форум, ответ - да.
    а вообще, зря ты тут спросил, оффтопик какбе. тему бы создал новую лучше... хотя поздно уже :)
     
    1 person likes this.
  10. horlyk

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

    Joined:
    2 Dec 2007
    Messages:
    132
    Likes Received:
    6
    Reputations:
    0
    Вот столкнулся с такой проблемкой:
    Мне нужно вычитать область памяти, адрес которой известен(hex). Сразу в голове построился процесс написания программы и что буду использовать. Сразу решил использовать указатели. Но вот проблема - при вводе в консоль адреса ячейки, которым нужно инициализировать указатель, чет не то происходит - адрес присваивается, но значение не вычитывается(то есть не правильное ).

    1. В какой тип переменной можно записать hex, а потом его использовать для инициализации указателя?(с интом чаром чет не вышло)
    2. Мне нужно вычитать к примеру 50 адресов, идущих после известного. Инкримент указателя для этого подойдет?

    Смотрю, чет никто не отвечает. Вот к приведу пример как я делал:

    Code:
    void main()
    {
    	int a = 19;	
    	cout << "a = " << a << "\n&a = " << &a << endl;
    }
    это код в одной проге. Я ее запускаю и вижу адрес переменной а в памяти.

    Далее я запускаю другую прогу, с кодом
    Code:
    void main()
    {
    	int *a = (int*)0x0012FF60;	//адрес переменной из 1-й проги
    	cout << "a = " << a << "\n*a = " << *a << endl;	
    }
    Видно что адрес в указателе сменился, а вот доступиться к значению не могу по нормальному(((

    А вообще нужно чтоб адрес был введен пользователем к примеру так:

    Code:
    char addr[10];
    cin >> addr; // сюда вводится адрес из первой проги
    
    char *mem = (char*) addr;
    Подскажите плз, а то моск уже кипит от количеста перепробованных вариантов(((
     
    #3770 horlyk, 24 Sep 2009
    Last edited: 25 Sep 2009
  11. Hiro Protagonist

    Joined:
    26 Aug 2009
    Messages:
    132
    Likes Received:
    24
    Reputations:
    -2
    2horlyk

    1. память я надеюсь своего процесса? Если нет то читать из чужого ReadProcessMemory MSDN

    Если из своего, то просто по указателю. Чтото типа этого.

    int foo;
    int bar;

    foo = 0xXXXXXXXX;
    bar = *((int *)foo);

    для foo можно использовать любой тип, главное чтобы он был 4-x байтным.
    Если в следующий раз будет что-то не получатся - покажи код!

    2. Да, но следи, чтобы указатель не вылетал за пределы выделенной памяти, а то схватишь access violation.
     
    1 person likes this.
  12. horlyk

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

    Joined:
    2 Dec 2007
    Messages:
    132
    Likes Received:
    6
    Reputations:
    0
    Да, именно в другом процессе. Так то оно выходит. Можно плз пример использования той ф-и, что ты мне дал в ссылке, а то я чет там ниче не понял.
     
  13. Hiro Protagonist

    Joined:
    26 Aug 2009
    Messages:
    132
    Likes Received:
    24
    Reputations:
    -2
    2horlyk

    Небольшой ликбез. В винде каждый процесс имеет свое изолированное адресное пространство, напрямую недоступное из другого процесса. Чтобы прочитать из другого процесса необходимо получить описатель объекта ядра типа процесс, связанного с другим процессом. Для этого нужно воспользоваться функцией OpenProcess (если конечно мы сами его не создавали, тк CreateProcess в структуре PROCESS_INFORMATION вернет описатели созданного процесса и его первичного потока).

    HANDLE hProc;
    hProc = OpenProcess(PROCESS_VM_READ, NULL, PID);
    где PID - идентификатор процесса. Обрати внимание что перед этим необходимо установить привелегию seDebugPrivilege иначе читать нельзя будет, об этом читай здесь.

    далее используешь этот описатель в ReadProcessMemory:

    ReadProcessMemory(hProc, lpBaseAddress, ...);

    где lpBaseAddress - указатель на данные в удаленном потоке (тот самый foo в примере выше). Остальные параметры должны быть понятны.
     
  14. horlyk

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

    Joined:
    2 Dec 2007
    Messages:
    132
    Likes Received:
    6
    Reputations:
    0
    Hiro Protagonist, спасибо, буду пробовать.
     
  15. Gin

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

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    Столкнулся с проблемой.
    Нужно прочитать из файла массив целочисленных переменных, как это можно реализовать.
    файл вида
    12 54 65 43 23
    23 54 32 65 63
    и т.д.
    числа разделенны пробелом.
    Спасибо.
     
  16. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Здесь нужно уточнить, что в итоге должно получиться:
    одномерный массив со всеми числами, или двумерный...
     
  17. Smapt

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

    Joined:
    29 Jan 2008
    Messages:
    31
    Likes Received:
    32
    Reputations:
    3
    Как проверять валидность хттп и сокс прокси?
     
  18. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    в зависимости от ситуации и способа использования. Очень удобное делать так:
    сначала пингуеш его - чтобы отсеять те которые в офлайне компы.
    А потом короткий тестовый запрос на крутой ресурс. хотябы на главную страницу гугля. ну или на свой гейт который даст ответ. И тогда ты можеш смотреть как именно пашет прокси. Но чаще всего хватает уже пинга
     
    1 person likes this.
  19. Gin

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

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    2Gray_Wolf
    двухмерный в в первом элементе номер строки во втором массив значений.
     
  20. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Вот функция которая разбивает строку
    http://www.cplusplus.com/reference/clibrary/cstring/strtok/
    а всё остальное стандартно...
     
    1 person likes this.
Thread Status:
Not open for further replies.