Sorry, this still isn't enough to see exactly what you're doing and
where the problem is.  If you can't make a simple case that can be
sent to the list so others can easily build and try your code to
reproduce the problem, then you're unlikely to see much help coming
from anyone on this list.  Also, as I mentioned in my previous response,
this really isn't a general C/C++ inquiry list.  It's a list to discuss
Cygwin.  If you find that your problem is relative to Cygwin's
implementation of dlopen and friends, this is the proper list to report/
discuss that.  If the problem is caused by some obscure compiler bug that
is specific to Cygwin, this is the right list.  If you're just not sure
how to get code like this working or you have some other non-Cygwin
specific issue, then a different forum is more appropriate.

Larry

Lucien Mathieu wrote:

Hello again,

following this example:

TObject.hpp:

                class Tobject {
                        ...
                };

                extern "C" {
                        void * init();
                }

TObject.cpp

                void * init() {
                        return (new Tobject());
                }

        I create a DLL, g++ -c Tobject.cpp
                g++ -shared -o Tobject.dll Tobject.o

        When calling the init function after initialising everything
with
        dlopen, dlsym, dlcose... It's generating a segmentation fault,
is
        it due to the load and unload of the DLL? Even if I don't call
the
        dlclose at the end, it's still doing the segmentation fault, is
there
        a way of passing the pointer from the DLL to the main program
using
        dlopen/dlsym stuff?

Let me know if I can't ask this kind of question to the list ;-P

Thanks in advance,
Lucien.

-----Message d'origine-----
De : Ronald Landheer-Cieslak [mailto:[EMAIL PROTECTED] Envoyé : lundi 21 juillet 2003 15:48
À : Lucien Mathieu
Cc : [EMAIL PROTECTED]
Objet : Re: Call dynamic pointer



On Mon, 21 Jul 2003, Lucien Mathieu wrote:


Hello,

in a dll, I'm calling a

        extern "C" {
                void * init();
        }

where it is define as follow

        void * init() {
                return (new TObject());
        }

        it's doing a segment fault,
        does the new pointer is automatically deleted?
        
        I was thinking not to use the dlclose in the main program,
        but it doesn't work either.

Any idea how to return a pointer from a DLL to a main program?

Thanks in advance,

You're not providing nearly enough information about your problem. Have
a look at http://www.cygwin.com/problems.html for more information.


HTH

rlc


--
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/



Reply via email to