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

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

    Joined:
    29 Dec 2004
    Messages:
    104
    Likes Received:
    3
    Reputations:
    0
    Нет, нам в универе пока только С и Python дают :)
     
  2. reza4ok

    reza4ok New Member

    Joined:
    3 May 2008
    Messages:
    17
    Likes Received:
    1
    Reputations:
    0
    Здравствуйте, интересно как на C++ пишется fork-бомба. Вот нашел этот код:
    Code:
    #include <unistd.h>
    int main()
    {
       while(1)
          fork();
    }
    Всё да ничего, но выдаёт ошибку, вот только уже не помню какую.
    P.S. C++ начал изучать две недели назад :rolleyes:
     
  3. zythar

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

    Joined:
    16 Feb 2008
    Messages:
    517
    Likes Received:
    109
    Reputations:
    5
    вообще-то это не с++ а си.
    пости конкретно какую ошибку выдает?
     
  4. Forcer

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

    Joined:
    12 Apr 2007
    Messages:
    321
    Likes Received:
    98
    Reputations:
    12
    VIP
    Варианты:
    1. Использовать структуру данных список;
    2. использовать функцию realloc;
    3. написать свою функцию-аналог realloc;
    4. всякий изврат типа сделать рекурсивную функцию со статическим массивом - и по мере вложенности увеличивать счетчик, а в конце - создавать массив и записывать, идя назад по рекурсии туда все элементы.

    Мне больше всего нравится первый вариант.
     
  5. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    return 1;

    А вообще пока не будешь помнить, то подобные вопросы задавать на форумах не следует ;)
     
  6. serfertty

    serfertty Guest

    Reputations:
    0
    Тока начал изучасть С++ скачал Visual Studio 2008 попробывал так на скрине
    [​IMG]
    Тока сильно не пинать.
     
  7. Namelles One

    Namelles One Elder - Старейшина

    Joined:
    8 Jul 2005
    Messages:
    43
    Likes Received:
    14
    Reputations:
    19
    Абалденный скрин - не видно ничего вообще =\
     
  8. ntldr

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    не знаю, зачем там stdafx.h
    надо #include <iostream>
    затем using namespace std;

    У меня вопрос - как можно перевести адрес, возвращаемый ф-цией getprocaddress в строку?
     
    #1768 ntldr, 6 Nov 2008
    Last edited: 6 Nov 2008
  9. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    396
    Reputations:
    297
    Если в настройках проекта стоит опция "Use Precompiled Header", то использование этого файла обязательно. Так что либо отключайте эту опцию, либо строчку с включением stdafx.h не трогайте (а то получите "unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?" )


    char bf [10];

    wsprintf(bf,"%X",GetProcAddress(LoadLibrary("kernel32.dll"),"LoadLibraryA"));

    Функция форматированного вывода (в данному случае выведется в хексе). Результат вывода - в bf.

    Можно то же самое, только сразу на консоль, тогда
    printf("%X",GetProcAddress(LoadLibrary("kernel32.dll"),"LoadLibraryA"));
     
    #1769 0x0c0de, 6 Nov 2008
    Last edited: 6 Nov 2008
    1 person likes this.
  10. ntldr

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    1>------ Build started: Project: testproxy, Configuration: Debug Win32 ------
    1>Compiling with Intel(R) C++ 10.1.021 [IA-32]... (Intel C++ Environment)
    1>main.cpp
    1>Linking... (Intel C++ Environment)
    1>xilink: executing 'link'
    1>main.obj : error LNK2019: unresolved external symbol _htons@4 referenced in function _main
    1>main.obj : error LNK2019: unresolved external symbol _htonl@4 referenced in function _main
    1>main.obj : error LNK2019: unresolved external symbol _bind@12 referenced in function _main

    1>C:\Documents and Settings\User\Мои документы\Visual Studio 2008\Projects\testproxy\Debug/testproxy.exe : fatal error LNK1120: 4 unresolved externals
    1>Build log was saved at "file://C:\Documents and Settings\User\Мои документы\Visual Studio 2008\Projects\testproxy\testproxy\Debug\BuildLog.htm"
    1>testproxy - 4 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    В чем может быть проблема?
    Код
     
  11. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    396
    Reputations:
    297
    2ntldr
    подключи либу Ws2_32.lib
     
  12. ntldr

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    спасибо, работает. А как можно загрузив dll через LoadLibraryA, вызвать её по адресу - типа как на асм
    CALL [адрес]
    ?
     
  13. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    396
    Reputations:
    297
    >>А как можно загрузив dll через LoadLibraryA, вызвать её по адресу - типа как на асм
    CALL [адрес]
    ?



    typedef HANDLE (__stdcall*LoadLibr)(char *);
    ...


    LoadLibr addr = (LoadLibr)GetProcAddress(GetModuleHandle("kernel32.dll"),"LoadLibraryA");
    addr("ntdll.dll");

    ....
     
    #1773 0x0c0de, 6 Nov 2008
    Last edited: 6 Nov 2008
  14. ntldr

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    как можно передать структуру данных из 1 приложения в другое?
     
  15. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    По сокету, пайпу, разделяемой памяти, мейлслотам и т.д.
     
  16. Fertility

    Fertility New Member

    Joined:
    5 Nov 2008
    Messages:
    5
    Likes Received:
    1
    Reputations:
    0
    на этапе линка Сшка(VC++ 2008 как и пробовал в 2005) выдает ошибки:
    Code:
    1>Process.obj : error LNK2028: unresolved token (0A000009) "extern "C" struct HWND__ * __stdcall FindWindowW(wchar_t const *,wchar_t const *)" (?FindWindowW@@$$J18YGPAUHWND__@@PB_W0@Z) referenced in function "public: void * __clrcall CProcess::CreateGEProcess(void)" (?CreateGEProcess@CProcess@@$$FQ$AAMPAXXZ)
    
    1>Process.obj : error LNK2019: unresolved external symbol "extern "C" struct HWND__ * __stdcall FindWindowW(wchar_t const *,wchar_t const *)" (?FindWindowW@@$$J18YGPAUHWND__@@PB_W0@Z) referenced in function "public: void * __clrcall CProcess::CreateGEProcess(void)" (?CreateGEProcess@CProcess@@$$FQ$AAMPAXXZ)
    Что ей так не нравится в моей програме, учитывая что по сути там всего одна гореинструкция hWindow=FindWindow(LPCWSTR("TForm"),0); ???
    Пробовал создать консольное приложение, успешно линкует и запускается.....
     
  17. VIP

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

    Joined:
    29 Dec 2004
    Messages:
    104
    Likes Received:
    3
    Reputations:
    0
    А как можно добавлять в стуркутру новый элемент? Как я понял из книг и лекций структура и массив отличаются только тем, что в массиве однородные объекты, а в структуре разнородные. Если это так, то массив мне подходит больше, но как ведь задавая массив нужно сразу задавать количество элементов, а оно в задаче неизвестно! Как быть?
     
  18. VIP

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

    Joined:
    29 Dec 2004
    Messages:
    104
    Likes Received:
    3
    Reputations:
    0
    И ещё один вопрос:

    Как в С реализована "защита от дураков"? Всмысле исключения, типа аналога try/except в Python?
     
  19. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Никак.
    Поэтому так часто и встречаются уязвимости типа переполнений буфера, которых в других языках не бывает.
     
  20. VIP

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

    Joined:
    29 Dec 2004
    Messages:
    104
    Likes Received:
    3
    Reputations:
    0
    Это что же в таком языке как С вообще нет никакой засчиты? А если я вместо переменной типа int напишу Hello, то любая прога на С у меня вылетит?
     
Thread Status:
Not open for further replies.