| delorie.com/archives/browse.cgi | search |
| Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
| List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
| List-Archive: | <http://sourceware.org/ml/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
| Sender: | cygwin-owner AT cygwin DOT com |
| Mail-Followup-To: | cygwin AT cygwin DOT com |
| Delivered-To: | mailing list cygwin AT cygwin DOT com |
| Message-ID: | <42C4939D.DED5398E@dessent.net> |
| Date: | Thu, 30 Jun 2005 17:51:41 -0700 |
| From: | Brian Dessent <brian AT dessent DOT net> |
| MIME-Version: | 1.0 |
| To: | cygwin AT cygwin DOT com |
| Subject: | Re: Dynamically load a shared lib created using gcc/Cygwin |
| References: | <200507010026 DOT j610Qhwa026567 AT citheronia DOT ucdavis DOT edu> |
| X-Spam-Report: | -5.9/5.0 ---- Start SpamAssassin results * -3.3 ALL_TRUSTED Did not pass through any untrusted hosts * -2.6 BAYES_00 BODY: Bayesian spam probability is 0 to 1% * [score: 0.0000] * 0.0 AWL AWL: From: address is in the auto white-list ---- End SpamAssassin results |
| X-IsSubscribed: | yes |
| Reply-To: | cygwin AT cygwin DOT com |
Yu-Cheng Chou wrote:
> mylib.dll was created using gcc/cygwin based on some libraries that were
> also built using gcc/cygwin and CANNOT be re-built by other compilers.
> I have to, and need only to load mylib.dll at run-time by function
> LoadLibrary("mylib.dll")
> in an applicaiton that was built by Visual C++ or .NET.
> When I ran this application in Windows XP, it hung at LoadLibrary
> ("mylib.dll").
Please stop sending me personal email. This is a public mailing list,
address all replies to the list.
I don't see what the different compilers have to do with anything. You
would be facing the same situation if you tried to load cygwin1.dll from
a mingw program without properly initializing it, and in that case
everything would be built from gcc. The only reason you don't have to
worry about this for Cygwin .exes is that the initialization code is
done for you in the CRT startup code.
I don't know what to tell you. The Cygwin DLL has its own special
requirements that have to be met. If you don't load it properly your
application will not work. If you can't do that you can't use the DLL.
You might be able to work around this by making a stub DLL with the same
interface as mylib.dll, that would load and initialize cygwin1.dll and
then load the real mylib.dll, and pass through any function calls to
mylib.dll. But doing that would be a whole lot harder than just having
the program that is doing LoadLibrary("mylib.dll") first load the Cygwin
DLL. And since all these programs must be open source (or else you're
violating the Cygwin license agreement), I don't see why you can't just
do that.
Brian
--
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/
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |