[python-win32] Extension and local data on win32

Robert Olson olson@mcs.anl.gov
Mon, 11 Nov 2002 15:07:28 -0600


At 04:03 PM 11/11/2002 -0500, Jorgensen, Jens wrote:
>How interesting. You say that you're linking in the C library into each 
>.dll. Is your C library a static or shared lib? If it is a static lib then 
>the problem is apparent: each .dll gets a copy of that C library and thus 
>its own copy of the static-scoped type objects.

Yes, it is a static library (dll version is not supported).

>If this is the case then you'll have to restrict creation of these structs 
>to just one of the .dlls to make this work.

Hrm. It's fairly unclear how to make that happen; I suspect I'd have to 
break the library in two and just link the structure defs by themselves. (ugh).

>If the C library is a shared lib (.dll) itself then this is interesting. I 
>guess this would mean that each time the .dll is loaded the OS makes a new 
>copy of the data part of the image? I wouldn't think this would be the 
>case. I don't think Q109619 is what you want since this talks about 
>sharing data in a .dll among all processes and in your case this is all 
>within the same process.

Ah, right. That'd explain why it didn't work :-). I still hold out some 
hope that by subtle  manipulation of the compiler or runtime we can make 
this happen without hacking the library ...

thanks for the help,
--bob