Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

DarkBASIC Discussion / d3drm.dll yet again

Rob from Scotland
Years of Service
User Offline
Joined: 23rd Aug 2003
Location: Scotland
Posted: 5th Jun 2013 20:20
A good few years ago (starting in 2003) I wrote a few programs in DarkBasic. Of course d3drm.dll was included in Windows XP. Now I know how to include d3drm.dll in Windows Vista and also in the folder containg the .exe of any of my programs. Now I wrote about 18 FreeWare maths games for teachers etc. to help children. Now I want to resurrect these games.
I could try to have people download the games in folders which each contain a maths game and d3drm.dll. However is there any other way of including d3drm.dll along with each free game? I could also have users download d3drm.dll and install it themselves in the same folder as each .exe.

Any advice would be welcome. To see the website try Thank you all.
Fluffy Rabbit
User Banned
Posted: 7th Jun 2013 00:32
Microsoft allows you to include the DLL with your program. Just keep it in the same folder as the executable and everybody will be fine.

Alternatively, you can compile in DB 1.2 (1.14) and nobody will need d3drm.

Rob from Scotland
Years of Service
User Offline
Joined: 23rd Aug 2003
Location: Scotland
Posted: 7th Jun 2013 15:19
Thanks Fluffy Rabbit,
"you can compile in DB 1.2 (1.14) and nobody will need d3drm."

Forgive me for being dense but does this really mean that I can simply find my original DBA files and compile them in 1.14, then I will have games that can be downloaded and played with no need for d3drm.dll to be in the same folder?

I have known about including d3drm.dll in the folder that the game was loaded from but did not think that I could make a game that included it. I can blame multiple sclerosis (about 65% of us suffer cognition problems, including me). I will get down to re-compiling my games straight away.

Thanka again, Rob
Years of Service
User Offline
Joined: 23rd Jul 2006
Posted: 8th Jun 2013 04:06 Edited at: 8th Jun 2013 18:14

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:

Enjoy your day.
Rob from Scotland
Years of Service
User Offline
Joined: 23rd Aug 2003
Location: Scotland
Posted: 9th Jun 2013 17:32
Thanks Latch,

I'll copy my programs onto a memory stick for my daughter, a primary school teacher, to use. This should be easy enough to do. Teachers elswhere will just have to wait. I have had some problems doing this but I'll work them out. I'm told that it is good for me to work away at problems.

Then I'll come back to your advice on my d3drm.dll problem. Given time, and I am retired, I should be able to try out your suggestions and come to a conclusion that works for me. Anybody who wants to have a look at my site can find it at

Thanks again Latch.

Login to post a reply

Server time is: 2020-08-05 09:43:17
Your offset time is: 2020-08-05 09:43:17