From 909df7cbb423c5a02c33544c0d77a337b6258f1e Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sat, 4 Jun 2005 02:14:13 +0000 Subject: [PATCH] * how-programming.texinfo: Add "How do I load cygwin1.dll dynamically from a Visual Studio or MinGW application?" --- winsup/doc/ChangeLog | 5 +++++ winsup/doc/how-programming.texinfo | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/winsup/doc/ChangeLog b/winsup/doc/ChangeLog index e9b4607a9..0a14adf19 100644 --- a/winsup/doc/ChangeLog +++ b/winsup/doc/ChangeLog @@ -1,3 +1,8 @@ +2005-06-03 Max Kaehn + + * how-programming.texinfo: Add "How do I load cygwin1.dll dynamically + from a Visual Studio or MinGW application?" + 2005-05-28 Joshua Daniel Franklin * how-using.texinfo : Update the mkdir -p section to reflect diff --git a/winsup/doc/how-programming.texinfo b/winsup/doc/how-programming.texinfo index 3003ff7c3..ae233cfbd 100644 --- a/winsup/doc/how-programming.texinfo +++ b/winsup/doc/how-programming.texinfo @@ -269,6 +269,22 @@ then generate import libraries for the MS VC linker. Thanks to Alastair Growcott (alastair dot growcott at bakbone dot co dot uk) for this tip. +@subsection How do I load @samp{cygwin1.dll} dynamically from a Visual Studio or MinGW application? + +Read @code{how-cygtls-works.txt} and the sample code in +@code{winsup/testsuite/cygload} if you want to understand how this works. +The short version is: + +@enumerate +@item Make sure you have 4K of scratch space at the bottom of your stack. +@item Invoke @code{cygwin_dll_init()}: +@example +HMODULE h = LoadLibrary("cygwin1.dll"); +void (*init)() = GetProcAddress(h, "cygwin_dll_init"); +init(); +@end example +@end enumerate + @subsection How do I link against a @samp{.lib} file? If your @samp{.lib} file is a normal static or import library with