1. C++ / Говнокод #3326

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    // Для получения имени компьютера напишите следующий код:
    unsigned long Size = MAX_COMPUTERNAME_LENGTH + 1;
    char *Buffer = new char[Size];
    GetComputerName(Buffer, &Size);
    // после выполнения данного кода имя компьютера будет
    // содержаться в Buffer. После того, как Buffer перестанет быть
    // вам нужным, не забудьте вызвать delete [] Buffer.
    
    /*-------------------*/
    
    //Изменение имени компьютера
    
    // для изменения имени компьютера воспользуйтесь функцией
    // SetComputerName
    SetComputerName("НОВОЕ_ИМЯ_КОМПЬЮТЕРА");
    // не забудьте перезагрузить машину

    Имя компьютера - получение и изминение в C++ Builder
    (c) webkill http://webkill.ru/content/?id=508

    Запостил: This is obvious, 26 Мая 2010

    Комментарии (41) RSS

    • Все дружно блюем в корыто!
      Ответить
    • http://3.webkill.ru/shkola.html
      доставляет однако.
      Ответить
      • О госпади!!!!!
        Ответить
      • ёперный театр!
        это что же, до него домогаются одноклассники?
        пойду дальше дочитывать
        Ответить
        • > это что же, до него домогаются одноклассники

          хм, меня это возбуждает.
          пойду обмажусь вазелином.
          Ответить
      • у меня после просмотра его сайт перед глазами летают горизонтальные полосы куда ни посмотрю!!!! пиздец!!! как это вылечить??? я заражён!!
        Ответить
        • Теперь ты тоже ВебКилл. Прячимся!!!
          Ответить
        • Точно, snow crash читал? Как, глоссолалии симптомов пока нет?
          Ответить
          • 沒有
            Ответить
            • освоил переводчик, теперь повыёбыватся на говнокоде решил ?)
              Ответить
              • あの人 は 山陰茎 です。

                Черт, давно дело было:)
                Ответить
              • Χαχα, οὐ δύναμαι μέ γελᾶν, ὦ κακοδαιμίδιον, Ἑλλάδα γοῦν γλῶσσαν ἵημι, οὐκ ἔχεις δε ἄνευ ἑρμηνέως δύο ἀγγλικοὺς λόγους πλέξαι
                Ответить
                • > ὦ κακοδαιμίδιον

                  σύγγνωθι, κάλεμος εἰμί
                  Ответить
                  • Merde, ceux-ci sont plus les fans d'animé, mais des Sophocliastes!
                    Ответить
            • Тьху! Онимешнег!
              Ответить
    • А в чём быдлокод-то?

      То что ulong передаётся по ссылке - так может это какая-то функция из Сишной библиотеки, там часто всё передаётся как void*, это ж C.
      Ответить
      • Вообще-то это не ссылка, а взятие адреса.
        Ответить
        • вообще-то это копрокод.
          Ответить
        • Говоря по ссылке, я имел в виду не термин "передача по ссылке" из C++, а то что передаётся не значение числа, а его адрес.
          Действительно, это называют передачей по адресу, а не по ссылке, но не стоит придираться к словам, всё равно в итоге получится одно и то же, разница лишь в синтаксисе.

          Ещё раз. Тут четыре строки кода. Какая конкретно строка вам кажется говнокодом? Предложите свой вариант, сомневаюсь, что в таких простых действиях вообще возможны варианты.
          В канонических примерах http://msdn.microsoft.com/en-us/library/ms724426(v=VS.85).aspx код не намного лучше.

          То что комментарии к коду излишне подробные, орфографическая ошибка в названии статьи, и вообще статья ни о чём - так это к коду уже не относится.
          Ответить
          • вебкилл, перелогинься
            Ответить
          • Сам не слишком уверен, но:

            unsigned long вместо DWORD (хотя это вроде одно и тоже)
            char[] можно было выделить в стеке
            Ответить
            • > unsigned long вместо DWORD (хотя это вроде одно и тоже)

              да, одно и то же.

              > char[] можно было выделить в стеке

              просто одно из альтернативных решений, никак не говнокод
              Ответить
      • по мне так "new char[Size]" есть говно. имя хоста не может мегабайты занимать.

        имя хоста по определению (в тот же DNS загляните; в виндах лимит еще жестче) есть ограниченое.

        плюс если уж на виндах в WinAPI програмлишь, изволь ихние типы использовать. http://msdn.microsoft.com/en-us/library/ms724295(VS.85).aspx (млин опять эти далб**бы msdn перетрахнули....)
        Ответить
        • > по мне так "new char[Size]" есть говно.

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

            у нас народ таким вот С++ прогу наваял. я там чуть не упал когда увидел что в std::map<char*, struct1 *> (что само по себе уже говно) они добавляют ключи через "char *p = new char[CONST]; strcpy(p, key);". а я сейчас сижу фикшу мемори лики которых там отродясь быть не должно было.
            Ответить
            • > на какого рожна нужна динамическая память когда мляць размер буфера заранее известен?? и заранее известно что оно легко помещается на стек???

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

              короче придирки по частным случаям, совершнно н говнокод
              Ответить
        • > (млин опять эти далб**бы msdn перетрахнули....)

          у тя тоже в lightweight-версии невозможно переключать языки примеров? у меня застряло на C# "This language is not supported, or no code example is available." и, сука, не переключается.
          Ответить
      • так и есть:

        BOOL WINAPI GetComputerName(LPTSTR lpBuffer, LPDWORD lpnSize);

        принимает ссылку.
        Ответить
    • Тру пацанчики делают так:
      string name=GetComputerName();
      SetComputerName("new "+name);
      Тоесть носят говно на лопате, а не поднимают его руками.
      Ответить
    • "Этот сорец написан исключительно в целях демонстрации возможности, и не содержит авторазгрузки, распространение и.д.р "боевые" возможности. "
      http://3.webkill.ru/ddos.html

      Кто подскажет нубасу, что такое "авторазгрузка"?
      Ответить
    • >После того, как Buffer перестанет быть
      // вам нужным, не забудьте вызвать delete [] Buffer.
      я сегда думал, что нужно сделать сначала free(Buffer), и только потом delete, не?
      Ответить
      • free если malloc
        delete если new
        Ответить
      • вебкиллу есть кому передать свои знания
        Ответить
      • пппц ты школота

        new / delete -> c++
        (c|m)alloc -- free -- c
        Ответить
        • А теперь повтори то же самое, дорогой наш уже-с-25-мая-этого-года-не-школота, только без ругательств.
          Ответить

    Добавить комментарий