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
|
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
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user