September 22, 2005 winsamp refactored | ||||
|---|---|---|---|---|
| ||||
I was promped to try creating a Windows application in D recently and was struck by how complicated winsamp made it seem--no user should ever have to copy portions of proprietary runtime code (dmain2) to make her D app work. This is an alternate method I cooked up that works equally well and show be a bit more portable:
# import sys.windows.c.windows;
#
# /*
# * Pass on all the real work to the standard main function.
# */
# extern (C) int main( int argc, char **argv );
#
# extern (Windows) int WinMain( HINSTANCE hInstance,
# HINSTANCE hPrevInstance,
# LPSTR lpCmdLine,
# int nCmdShow )
# {
# return main( 1, &lpCmdLine );
# }
#
# /*
# * Define your D main function as usual. This will be called through
# * the extern(C) main function called above. That's it!
# */
# void main()
# {
#
# }
A working sample using this method (based on samples.d.winsamp bundled with DMD)
is available here:
http://home.f4.ca/sean/d/winsamp.zip
Sean
| ||||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply