Re: Exiting from a DLL (Windows)
On Thursday, Feb 6, 2003, at 16:18 America/New_York, Nick Levine wrote: > (Just guessing...) > > Anyway, I have this application which works fine in stand alone (it > has an interface etc etc). > > However, when I make it into a DLL, it exhibits the following > behavior. > > I call the main function (the entry point of both the stand-alone > app and of the DLL) and the interface is brought up with no > problems. Then I can interact with the application. However > > 1 - (Minor point) The "calling application" - some C++ stuff - is > frozen in the meanwhile. > > Your application made a function call into lisp and is waiting for > that call to return. What you probably want to do is to spawn off a > new thread immediately on entry to lisp and allow the calling function > to return. (Alternatively you could spawn a thread in the C++ > application in which call into lisp, but that looks like much more > work.) > Yep. I will just spawn a new thread. The only problem is then to catch new calls from the C++ application. I wouldn't want to respawn the whole interface. > 2 - (Major mess) When I "exit" from the CAPI interface (close the > window) the all application is brought down (since I call a QUIT). > > There are two ways of generating a DLL: via save-image and using > Delivery. If your case is save-image then I'm stumped, but imagine > you're talking about Delivery here. The answer in this case is to set > the following keyword > :quit-when-no-windows nil > > Let us know whether you've still got problems! I generate the DLL using DELIVERY. I hadn't noticed the :QUIT-WHEN-NO-WINDOWS keyword. I'll try that out. If it works then it will be sweet. Cheers -- Marco Antoniotti NYU Courant Bioinformatics Group tel. +1 - 212 - 998 3488 715 Broadway 10th FL fax. +1 - 212 - 998 3484 New York, NY, 10003, U.S.A. -- Marco Antoniotti NYU Courant Bioinformatics Group tel. +1 - 212 - 998 3488 715 Broadway 10th FL fax. +1 - 212 - 998 3484 New York, NY, 10003, U.S.A.