Slight rearragement

This commit is contained in:
Joshua Daniel Franklin 2005-06-05 02:16:07 +00:00
parent 909df7cbb4
commit bbe982c5cc
2 changed files with 26 additions and 24 deletions

View File

@ -211,10 +211,26 @@ give them to you, but you can't give them to anyone else, which is
something that Red Hat can't agree to. Fortunately, we something that Red Hat can't agree to. Fortunately, we
have our own Win32 headers which are pretty complete. have our own Win32 headers which are pretty complete.
@subsection How do I link against @samp{cygwin1.dll} with Visual Studio? @subsection How do I use @samp{cygwin1.dll} with Visual Studio or MinGW?
To my knowledge, none of the Cygwin developers have done this, but we If you want to load the DLL dynamically, read
have this report from the mailing list that it can be done this way: @code{winsup/cygwin/how-cygtls-works.txt} and the sample code in
@code{winsup/testsuite/cygload} 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
If you want to link statically from Visual Studio, to my knowledge
none of the Cygwin developers have done this, but we have this report
from the mailing list that it can be done this way:
@enumerate @enumerate
@item Use the impdef program to generate a .def file for the cygwin1.dll @item Use the impdef program to generate a .def file for the cygwin1.dll
@ -269,22 +285,6 @@ then generate import libraries for the MS VC linker.
Thanks to Alastair Growcott (alastair dot growcott at bakbone dot co Thanks to Alastair Growcott (alastair dot growcott at bakbone dot co
dot uk) for this tip. 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? @subsection How do I link against a @samp{.lib} file?
If your @samp{.lib} file is a normal static or import library with If your @samp{.lib} file is a normal static or import library with

View File

@ -51,11 +51,13 @@ under HKEY_LOCAL_SYSTEM. The user mount table takes precedence over
the system-wide table if a path is mounted in both. This includes the the system-wide table if a path is mounted in both. This includes the
setting of the cygdrive prefix.</para> setting of the cygdrive prefix.</para>
<para>Since Windows uses drive letters instead of a single filesystem <para>The <command>mount</command> command can set the POSIX root
root, the POSIX root <filename>/</filename> must be set to a directory <filename>/</filename> to any directory in the Windows file system.
in the Windows file system using the <command>mount</command> command. In absence of such a mount, Cygwin maps <filename>/</filename> to the
Without a <filename>/</filename> mount, Cygwin processes cannot root of the current Windows working directory (for example,
distinguish between the Windows CurrentDrive and SystemDrive. <filename>H:\</filename> or <filename>\\computer\share</filename>).
Normally Cygwin's <command>setup.exe</command> creates the initial
mount point for the POSIX root.
</para> </para>
<para>Whenever Cygwin generates a Win32 path from a POSIX one, it uses <para>Whenever Cygwin generates a Win32 path from a POSIX one, it uses