This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How to make DLLs in cygwin for MSVC and BCB


On Thu, 2005-06-23 at 14:05 +0200, Patrick Rotsaert wrote:
> Ok, but this was only a small test program to see if I manage to load 
> cygwin1.dll functions.
> The plan is to do this in a DLL, later on. I guess cygwin_dll_init will 
> then have to be called in DllMain, yes?
> But then, what happens when DllMain returns? The stack space will no 
> longer exist.

You'll need to find some way to arrange that the 4K is available at
the bottom of the stack of your main thread for as long as you have
cygwin1.dll loaded.  Any thread spawned once cygwin1.dll is loaded will
automatically have the 4K inserted, but for your main thread, you need
to do stunts like
---
extern "C" int mainCRTStartup ();

extern "C" int __stdcall
cygwinFriendlyCRTStartup ()
{
  char buf[4096];
  return mainCRTStartup ();
}
---
and link with cygwinFriendlyCRTStartup as your entry point.

If you spawn other threads before you load cygwin1.dll, you should
not call any cygwin functions from those threads.



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]