Скачал здесь исходник с ХМ музыкой. ТАм музу вставляют в секцию .CODE. А как можно вставлять например рисунки, иконки и др. файлы, а потом их извлекать. Т.е. все без использования RC-файлов. Если можно, то дайте исходники. mail: wwerwe@mail.ru
Любой ресурс - это не более чем последовательность байт. Поэтому можно взять картинку, иконку и т.д., перегнать её в db-цепочки (утиль EFF, который поставляется вместе с вышеупомянутыми исходниками, умеет перегонять любые файлы в db), вставить результат в секцию .CODE или .DATA или куда вам больше нравится. НО API-функции типа LoadResource, LoadImage и т.п. с такими "ресурсами" работать уже не будут Поэтому ресурсы придётся загружать вручную. Лучше поступить несколько иначе: Для диалоговых шаблонов существует функция DialogBoxIndirect / DialogBoxIndirectParam, которая грузит диалог не из ресурсов, а из шаблона в памяти, т.е. шаблон можно поместить хоть в .DATA или .CODE и потом грузить его этой функцией. Для этого, правда, придётся изучить формат диалоговых шаблонов, но в MSDN он детально описан. В случае с иконками можно использовать функцию CreateIcon, а маски AND и XOR хранить в .DATA / .CODE. Пример использования этой функции тоже есть в MSDN. Аналогично можно поступить и с курсорами: ф-ция CreateCursor. С картинками чуть сложнее... Можно создавать их через SetDIBits, но сначала надо изучить формат BMP и немного поупражняться с GDI. Таким образом, практически любой ресурс можно так или иначе перетащить в секцию кода. Правда, иконка у экзешника уже не отобразиться в проводнике, о VERSIONINFO придётся забыть.
У меня такого под рукой нет, но принцип достаточно прост. 1. Создать пустой HBITMAP нужных размеров: Код (Text): hDC = GetDC(hWnd); hBMP = CreateCompatibleBitmap(hDC,ширина,высота); 2. Запихнуть в него картинку: Код (Text): SetDIBits(hDC,hBMP,0,высота,буфер_с_пикселями,&bitmapinfo,DIB_RGB_COLORS); Чтоб правильно заполнить структуру bitmapinfo нужно посмотреть её описание в MSDN (там и примеры должны быть). В буфере с пикселями нужно хранить картинку вверх ногами и соблюдая выравнивание, которое тоже нужно посчитать согласно описанию в MSDN.