Slight rearragement
This commit is contained in:
parent
909df7cbb4
commit
bbe982c5cc
|
@ -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
|
||||
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
|
||||
have this report from the mailing list that it can be done this way:
|
||||
If you want to load the DLL dynamically, read
|
||||
@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
|
||||
@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
|
||||
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
|
||||
|
|
|
@ -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
|
||||
setting of the cygdrive prefix.</para>
|
||||
|
||||
<para>Since Windows uses drive letters instead of a single filesystem
|
||||
root, the POSIX root <filename>/</filename> must be set to a directory
|
||||
in the Windows file system using the <command>mount</command> command.
|
||||
Without a <filename>/</filename> mount, Cygwin processes cannot
|
||||
distinguish between the Windows CurrentDrive and SystemDrive.
|
||||
<para>The <command>mount</command> command can set the POSIX root
|
||||
<filename>/</filename> to any directory in the Windows file system.
|
||||
In absence of such a mount, Cygwin maps <filename>/</filename> to the
|
||||
root of the current Windows working directory (for example,
|
||||
<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>Whenever Cygwin generates a Win32 path from a POSIX one, it uses
|
||||
|
|
Loading…
Reference in New Issue