Кресты / Говнокод #3326 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 This is obvious, (Updated )

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

    • ёперный театр!
      это что же, до него домогаются одноклассники?
      пойду дальше дочитывать
      Ответить
      • > это что же, до него домогаются одноклассники

        хм, меня это возбуждает.
        пойду обмажусь вазелином.
        Ответить
    • у меня после просмотра его сайт перед глазами летают горизонтальные полосы куда ни посмотрю!!!! пиздец!!! как это вылечить??? я заражён!!
      Ответить
      • Точно, snow crash читал? Как, глоссолалии симптомов пока нет?
        Ответить
            • Χαχα, οὐ δύναμαι μέ γελᾶν, ὦ κακοδαιμίδιον, Ἑλλάδα γοῦν γλῶσσαν ἵημι, οὐκ ἔχεις δε ἄνευ ἑρμηνέως δύο ἀγγλικοὺς λόγους πλέξαι
              Ответить
  • А в чём быдлокод-то?

    То что 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, не?
    Ответить
      • А теперь повтори то же самое, дорогой наш уже-с-25-мая-этого-года-не-школота, только без ругательств.
        Ответить

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

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8