dll в ресурсах

Тема в разделе "WASM.WIN32", создана пользователем katrus, 19 май 2007.

  1. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    надеюсь эти времена безвозвратно прошли, потому что хорошие движки проигрывают xm "из памяти"
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Здесь создаётся локальная (или глобальная, в зависимости от контекста) копия данных, в которой нет никакого смысла. Лучше уж BYTE* rsrc = {}, но для больших данных, опять же, бессмысленно — лучше оверлеи/ресурсы. IMO.
     
  3. Avoidik

    Avoidik New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2004
    Сообщения:
    288
    Адрес:
    Russia
    попробуй сам и поймешь, если подключаешь .h-файл, то вся эта фигня пропускается через компилятор, грузит проц и жрет память - пустой проект компилировался у меня целых 5-7 минут (и около минуты создавался дамп), а пустой проект, в которых файл хранится в ресурсах (main.rc: #include "file.rar") скомпилировался за пару секунд... вот и думай
     
  4. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Great
    Меня больше всего возмущает как эту проблему решают на VB. Т.к. статические инициализированные массивы визуальный бейсик не поддерживает, там сначала создают кучу текстовых строк:
    Код (Text):
    1. block_01 = "457874656E646564204D6F64756C653A20736F6674206D616E6961632D6D696E"
    2. block_02 = "AA65123498FE12CD46564204D6F64756C653A20736F6674206D616E6961632D6"
    3. ' ...
    4. block_NN = "00000100"
    Потом это всё соединяют:
    Код (Text):
    1. s_hex = block_01 + block_02 + ... + block_NN
    Потом переводят в бинарник (в байтовый массив):
    Код (Text):
    1. Dim s_bin As Byte
    2. ReDim s_bin(Len(s_hex) \ 2 - 1)
    3. For i = 1 To Len(s_hex) Step 2
    4. s_bin(i \ 2) = Val("&H" & Mid(s_hex, i, 2))
    5. Next
    Таким образом в VB пихают файлы "статически" :) Даже в MSDN есть статья, которая на полном серьёзе предлагает этот способ. А Вы тут жалуетесь на эффективность :)
     
  5. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    Quantum
    :)
     
  6. S_Alex

    S_Alex Alex

    Публикаций:
    0
    Регистрация:
    27 авг 2004
    Сообщения:
    561
    Адрес:
    Ukraine
    Пишешь типа такого в ресурсы и делов.
    Любой файлик добавит.

    Код (Text):
    1. #define IDR_MAIN_EXE    33133
    2. #define IDR_RAR_EXE     32123
    3.  
    4. 100 Icon    "Res/100.ico"
    5. IDR_MAIN_EXE File   DISCARDABLE "Loader\Loader.exe"
    6.  
    7. IDR_RAR_EXE File    DISCARDABLE "Res\Rar.exe"
     
  7. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    S_Alex
    Не File, а RCDATA, наверное. Причём не все компиляторы ресурсов поддерживают эту фишку. Например, GoRc и тот, что используется в Dev-C++, поддерживают только текстовые дампы.
     
  8. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
    Quantum, тип ресурса - тоже константа

    Т.е. File определён где-нибудь как “#define File 28”, например.

    А RC.EXE вполне свободно проглатывает такое:

    Код (Text):
    1. 2345    253 "1.html"
     
  9. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    G13
    Об этом можете догадаться Вы, но не компилятор.

    Изначально только микрософтовский компилятор этот синтаксис и понимал, т.к. данную фишку придумали именно в Микрософт, втихаря уклонившись от стандарта.