Did it just for fun, maybe it will help someone :) Requires UniLink: ftp://ftp.styx.cabel.net/pub/UniLink
main.d -------- extern(C) void _acrtused_con() { mainFunc(); } extern(Windows) { int MessageBoxA(uint hWnd, char* lpText, char* lpCaption, uint uType); void ExitProcess(uint uExitCode); } void mainFunc() { MessageBoxA(0, cast(char*) "Hello, World!".ptr, cast(char*) "Nano-D".ptr, 0); ExitProcess(0); } -------- object.d -------- module object; struct ModuleInfo { // nothing } -------- Compiling: dmd -c main.d Linking: ulink.exe -e__acrtused_con -L{YOUR_PATH_TO_DMD}\windows\lib -zkernel32;user32 main.obj Size of main.exe is 1068 bytes.