Trochę to trwało, ale za to będzie obszernie.
Znalazłem w końcu i przećwiczyłem następujące sposoby dołączania zasobów.
Sposób 1) wykorzystuje tylko mechanizmy Allegro, jest opisany w help'ie allegro.chm i składa się z następujących etapów:
Krok 1. Scalenie wszystkich wykorzystywanych bitmap, fontów, plików muzycznych itd. programem Grabber w jeden plik *.dat - p. help rozdz. Grabber. Jeżeli mamy font w pliku *.ttf, to przerabiamy go najpierw programem FontEd.exe (http://forum.ddt.pl/?Tid=692) na bitmapę. Grabber, oprócz pliku *.dat, produkuje plik nagłówkowy *.h.
Krok 2. Kompilacja naszego programu. W programie należy dołączyć ww. plik nagłówkowy. Do wyjęcia potrzebych zasobów (bitmap, fontów) z pliku *.dat należy w kodzie stosować procedury opisane w help'ie w rozdz. Datafile routines.
Krok 3. Połączenie naszego *.exe z plikiem *.dat poprzez wywołanie programu exedat - p. katalog Tools w Allegro. Opisane jest to w kodzie exexedat.c - p. katalog Examples.
Myślę, że nawet gdy nie chcemy dołączyć plików do naszego *.exe, scalenie w jeden plik *.dat naszych zasobów jest dobrym rozwiązaniem.
Sposób 2) wykorzystuje API. Póki co, udało mi się go sprawdzić dołączając jedną bitmapę. Projekt zawiera 2 pliki: *.cpp i *.rc. Kompilacja daje plik *.exe zawierający bitmapę.
obraz1 BITMAP "bitmapa.bmp"
#include <allegro.h>
#include <winalleg.h>
#include <windows.h>
int WINAPI WinMain( HINSTANCE instat, HINSTANCE, LPSTR, int )
{
allegro_init();
install_keyboard();
set_color_depth( 16 );
set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0 );
set_palette( default_palette );
clear_to_color( screen, 15 );
HBITMAP bitmapa =( HBITMAP ) LoadImage( instat, "obraz1", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION );
BITMAP * bbb = convert_hbitmap_to_bitmap( bitmapa );
blit( bbb, screen, 0, 0, 20, 20, bbb->w, bbb->h );
readkey();
allegro_exit();
return( 0 );
}