Здесь создаётся локальная (или глобальная, в зависимости от контекста) копия данных, в которой нет никакого смысла. Лучше уж BYTE* rsrc = {}, но для больших данных, опять же, бессмысленно — лучше оверлеи/ресурсы. IMO.
попробуй сам и поймешь, если подключаешь .h-файл, то вся эта фигня пропускается через компилятор, грузит проц и жрет память - пустой проект компилировался у меня целых 5-7 минут (и около минуты создавался дамп), а пустой проект, в которых файл хранится в ресурсах (main.rc: #include "file.rar") скомпилировался за пару секунд... вот и думай
Great Меня больше всего возмущает как эту проблему решают на VB. Т.к. статические инициализированные массивы визуальный бейсик не поддерживает, там сначала создают кучу текстовых строк: Код (Text): block_01 = "457874656E646564204D6F64756C653A20736F6674206D616E6961632D6D696E" block_02 = "AA65123498FE12CD46564204D6F64756C653A20736F6674206D616E6961632D6" ' ... block_NN = "00000100" Потом это всё соединяют: Код (Text): s_hex = block_01 + block_02 + ... + block_NN Потом переводят в бинарник (в байтовый массив): Код (Text): Dim s_bin As Byte ReDim s_bin(Len(s_hex) \ 2 - 1) For i = 1 To Len(s_hex) Step 2 s_bin(i \ 2) = Val("&H" & Mid(s_hex, i, 2)) Next Таким образом в VB пихают файлы "статически" Даже в MSDN есть статья, которая на полном серьёзе предлагает этот способ. А Вы тут жалуетесь на эффективность
Пишешь типа такого в ресурсы и делов. Любой файлик добавит. Код (Text): #define IDR_MAIN_EXE 33133 #define IDR_RAR_EXE 32123 100 Icon "Res/100.ico" IDR_MAIN_EXE File DISCARDABLE "Loader\Loader.exe" IDR_RAR_EXE File DISCARDABLE "Res\Rar.exe"
S_Alex Не File, а RCDATA, наверное. Причём не все компиляторы ресурсов поддерживают эту фишку. Например, GoRc и тот, что используется в Dev-C++, поддерживают только текстовые дампы.
Quantum, тип ресурса - тоже константа Т.е. File определён где-нибудь как “#define File 28”, например. А RC.EXE вполне свободно проглатывает такое: Код (Text): 2345 253 "1.html"
G13 Об этом можете догадаться Вы, но не компилятор. Изначально только микрософтовский компилятор этот синтаксис и понимал, т.к. данную фишку придумали именно в Микрософт, втихаря уклонившись от стандарта.