1. Куча / Говнокод #17481

    +129

    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
    import std.uuid;
    import std.file;
    import std.path;
    import std.string;
    ubyte[] sdlBytes = cast(ubyte[]) import("SDL2.dll");   // SDL2.dll contents
    void main(string[] args)
    {
        auto uuid = randomUUID();
        string uuid = randomUUID().toString();
        string filename = format("SDL2-%s.dll", uuid);     // Making an unique file name.
        string depacked = buildPath(tempDir(), filename);
        std.file.write(depacked, sdlBytes);                // Writing the dynlib to a temporary file.
        DerelictSDL2.load(depacked);                       // Use the depacked dynlib and load its symbols.
    }

    лол, надо поюзать.

    Запостил: DlangGovno, 19 Января 2015

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

    • И это при том, что винда временные файлы не чистит пока диск не забьется до упора...
      Ответить
      • Ну, файлик то можно и потереть потом (и понадеяться, что прога не слишком часто падать будет)
        Ответить
        • А почему просто рядом с прогой не приложить эту dll'ку? Хочется один файл без инсталляторов?
          Ответить
          • Что-то теплое и ламповое есть в прогах, состоящих из одного экзешника.
            Но это все равно все в теории, тот компиль, который я юзаю, требует таскать еще libwinpthread-1.dll, от него так просто не избавиться. )
            Есть еще другой компиль, который не требует libwinpthread-1.dll, но он не оптимизирует нихрена.
            Ответить
            • >Что-то есть теплое и ламповое есть в прогах, состоящих из одного экзешника.
              Высокая портируемость и куча копий одной и той же библиотеки в памяти.
              Ответить
              • Портируемость в смысле "легко таскать с компа на комп или даже на флешке"?

                Я вот, если честно, не вижу никакого смысла в этом... Папку перемещать ничуть не сложнее, на каждый запуск распаковывать не надо, и есть место для хранения данных и конфигов... От этих самораспаковывающихся "portable" программ один гемор, имхо.

                P.S. И они не имеют никакого отношения к старым добрым прогам из одного экзешника.
                Ответить
                • Речь именно о старых-добрых статически слинкованных в 1 файл программах.
                  Правда весят они овердохера.

                  >самораспаковывающихся "portable" программ один гемор
                  Фу бля. Я конечно юзаю их (самый простой способ поставить N браузеров разных версий), но тоже недолюбливаю.
                  Ответить
                  • А если thinapp? Там вместо самораспаковки эмулируется работа с фс.
                    Ответить
    • void main
      Ответить
      • main() must be declared using one of the following forms:
        void main() { ... }
        void main(string[] args) { ... }
        int main() { ... }
        int main(string[] args) { ... }
        Ответить
        • Ах, это D. Тогда да, можно. Туплю.
          Ответить
        • P.S. http://dlang.org/function.html раздел "main() Function".

          Бесят сайты, на которых на подзаголовки якоря не вешают.
          Ответить
    • Курс доширака сегодня пробил 25 рублей, котаны.
      Ответить

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