Call dynamic pointer

Larry Hall cygwin-lh@cygwin.com
Mon Jul 21 20:21:00 GMT 2003


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:ronald@landheer.com] 
> Envoyé : lundi 21 juillet 2003 15:48
> À : Lucien Mathieu
> Cc : cygwin@cygwin.com
> 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/



More information about the Cygwin mailing list