http://winch.pinkbile.com/exe_shrink.php
Exe shrinker is a runtime style system for darkbasic pro exes. Instead of the dbpro dlls
being stored in the exe they are sourced from the dbpro installation directory. This
makes the exes much smaller.
The old version of the program produced an exe. When this exe was run it would build a dbpro exe and then run it. The new version uses a much better system using the way dbpro handles compressed exes.
With a compressed exe the dbpro exe sees that the first appended file is "compress.dll". It then extracts "compress.dll" and then calls the decompress_block function within the dll. To this function it passes a pointer to the rest of the appended data and its size. The "compress.dll" then decompresses the data and returns a pointer to the decompressed data back to the dbpro exe.
This program uses its own compress.dll and instead of recieving compressed data it recieve a list of files the exe needs. The files are then read from the dbpro install dir and passed back to the dbpro exe as if they where decompressed. Currently it needs a seperate program to write the list of files to the dbpro exe. In the funture I hope to improve it so you can use it to replace the default compress.dll.
Since all the dbpro dlls are removed from the exe the exes are much smaller. The spinning cube demo is reduced from 4.9Mb to 137Kb.
By way of demonstration, he emitted a batlike squeak that was indeed bothersome.