[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Win32 DLL's and libobjc (was: install make, libobjc, base on cygwin/
From: |
Michael Scheibler |
Subject: |
Re: Win32 DLL's and libobjc (was: install make, libobjc, base on cygwin/mingw32) |
Date: |
Thu, 1 Mar 2001 10:20:40 +0100 |
I found some great great problem with libobjc. I tried to load a bundle with
NSBundle. On Windows it is a DLL. After debugging I found out, why my
program crashes:
- gnustep-base, objc-load.m, objc_load_module:
_objc_load_callback = objc_load_callback;
- libobjc, objc-api.h:
/*
** This is a hook which is called by __objc_exec_class every time a class
** or a category is loaded into the runtime. This may e.g. help a
** dynamic loader determine the classes that have been loaded when
** an object file is dynamically linked in.
*/
extern void (*_objc_load_callback)(Class class, Category* category);
When libobjc is a DLL and gnustep-base is a DLL, this assignment in
objc-load.m causes the program to abort immediately. I don't know if there
is any possibility to make _objc_load_callback changeable from another DLL.
I used following hack for this specific situation, but I think there are
more of those hooks.
- gnustep-base, objc-load.m, objc_load_module:
Instead of assignment:
__objc_set_load_callback(objc_load_callback);
And later:
__objc_set_load_callback(0);
- libobjc, objc-api.h:
void __objc_set_load_callback(void (*callbackFunction)(Class, Category*));
- libobjc, class.c:
void __objc_set_load_callback(void (*callbackFunction)(Class, Category*))
{
_objc_load_callback = callbackFunction;
}
- libobjc, libobjc.def:
__objc_set_load_callback
Michael
----- Original Message -----
From: "Adam Fedor" <fedor@doc.com>
To: "Michael Scheibler" <michael.scheibler@onevision.de>
Sent: Thursday, March 01, 2001 4:16 AM
Subject: Re: install make, libobjc, base on cygwin/mingw32
> Thanks for pointing out these problems, I don't get to test MINGW that
> often.
> I've fixed them.
>
> Let me know if you get the gnustep-base DLL to work. I've never gotten
> that to work. I'm not sure why.
>
> --
> Adam Fedor, Digital Optics | Fudd's law of opposition: Push
> fedor@doc.com http://www.doc.com | something hard enough, and it
> fedor@gnu.org http://www.gnustep.org | will fall over.
>
- Re: Win32 DLL's and libobjc (was: install make, libobjc, base on cygwin/mingw32),
Michael Scheibler <=
- Message not available