@Rob
I was under the impression that it's hit or miss with DB 1.2 and not including the d3drm.dll . The safer bet in my opinion is to include it. I don't know why, but sometimes it works, and sometimes it doesn't - probably depends on the direct x configuration of the particular windows system. It could be that somewhere along the line, a game or app (not DB) required the d3drm.dll and installed it somewhere on the machine as part of the package. On those machines DB 1.2 works fine. I dunno - I'm just guessing.
As a note for inclusion without having to have to use downloadable folders containing the game and the Dll - you can compress it with some ZIP archive. Win zip is pretty universal on all windows machine and you're likely not to run into any problems with someone not being able to unzip it without having to download a specific archiving program.
Also, there are 2 types of EXEs you can build:
1. The exe without any media included
2. The exe with all of the media included.
I'm not sure if number 2 will recognize dlls to be included in the final.
If it doesn't, a trick could be to change the file extension of the dll to say, .bmp . Then from your app,use code to rename the extension on that file to .dll and then load the dll.
I haven't tried it, but in my mind it works!
Another method: when DBC came out, pak files were popular - where you could "pack" all of your media and files into packed directories. These can be unpacked or the files can be referenced in the pak directories directly. There are PAK commands in DBC to do this. I haven't looked at those in years and I'm not at a computer that has DB so I can't test or reference it. Check the DBC documentation and I think you'll find something about that.
In fact, I believe when you create a final exe that includes all of the media, DBC is "pak"ing all of that stuff onto the end of the DB engine.
So maybe you can pak your dll file as such and reference it that way.
[EDIT 06082013]
Found the pak file commands:
Read Fileblock
Write Fileblock
Read Dirblock
Write Dirblock
An example from the help:
Rem * Title : Packed Files
Rem * Author : DBS-LB
Rem * Date : June 2001
rem ==============================================
rem DARK BASIC EXAMPLE PROGRAM 21
rem ==============================================
rem This program shows how to make packed files
rem ----------------------------------------------
rem Packed files are useful for storing many files
rem in one file for encryption and portable storage
rem Creating a packed file
print "Writing PAK file..."
open to write 1,"mydata.pak"
write fileblock 1,"text.txt"
write fileblock 1,"store.dat"
write dirblock 1,"sample"
close file 1
rem Extracting from a packed file
print "Reading PAK file into Temp folder..."
open to read 1,"mydata.pak"
make directory "Temp"
set dir "Temp"
read fileblock 1,"text.txt"
read fileblock 1,"store.dat"
read dirblock 1,"sample"
set dir ".."
close file 1
rem Done
print "Done."
end
Enjoy your day.