From: Herbaer <he...@we...> - 2001-11-16 00:16:14
|
Hi Mark, hi Earnie, With old Borland C++ the declaration "__declspec(dllexport) extern void* p;" has the following effect: the linker looks for p in all *.obj - modules, but not in *.lib's that may also be linked. So "__declspec(dllexport) extern void* p"; - is linked faster than just "extern void* p" (don't look in libs) - results in an error, if p is not found in a linked *.obj, no matter what libs are linked in, - the linker does not complain about multiple symbols if p is also defined in *.lib's, so the declaration "__declspec(dllexport) export ... " is in some way private to the module being linked. I don't know how the new incremental Borland linker works; I think MSVC works the same way; I've no idea about MinGW (Has anyone some tips?) Cheers, Herbaer Am 16.11.01 04:12:48, schrieb "Mark Jordan" <mar...@ie...>: >Hi Earnie, >I agree with you, but I don't think it matters. > >"extern" is saying that the variable definition is >located in another module, the declspec stuff is just >adding the additional information that the other >module is a DLL. > >Cheers, >Mark. > > >----- Original Message ----- >From: "Earnie Boyd" <ear...@ya...> >To: "Mark Jordan" <mar...@ie...> > >Sent: Thursday, November 15, 2001 10:43 AM >Subject: Re: [Mingw-users] Puzzled. > > >> Yes, but would you export the variable at creation. Why would you export an >> externally declared variable? >> >> It seems right to >> __declspec(dllexport) char * foo; >> and to later in some other file to >> __declspec(dllimport) extern char * foo; >> but it seems wrong to >> __declspec(dllexport) extern char * foo; >> . It's probably semantics but I'm puzzled. >> >> Earnie. >> >> Mark Jordan wrote: >> >> > Hi, >> > If you must have globals, make sure you control access >> > to them via functions. But yes, you'll need to export >> > them if they are to reside in a DLL. >> > >> > Best Regards, >> > Mark Jordan. >> > >> > ----- Original Message ----- >> > From: "Earnie Boyd" <ear...@ya...> >> > To: "MU List" <Min...@so...> >> > Sent: Thursday, November 15, 2001 5:29 AM >> > Subject: [Mingw-users] Puzzled. >> > >> > > I'm looking at someone elses port work and find that in some conditions >> > > it's possible to end up with something like >> > > __declspec(dllexport) extern char * foo; >> > > in the code. Isn't this wrong? Is is possible to export an external >> > > variable? >> > > >> > > -- >> > > Earnie. >> > > >> > > >> > > >> > > _________________________________________________________ >> > > Do You Yahoo!? >> > > Get your free @yahoo.com address at http://mail.yahoo.com >> > > >> > > >> > > _______________________________________________ >> > > MinGW-users mailing list >> > > Min...@li... >> > > >> > > You may change your MinGW Account Options at: >> > > https://lists.sourceforge.net/lists/listinfo/mingw-users >> > >> > _______________________________________________ >> > MinGW-users mailing list >> > Min...@li... >> > >> > You may change your MinGW Account Options at: >> > https://lists.sourceforge.net/lists/listinfo/mingw-users >> >> -- >> Earnie. >> >> >> >> _________________________________________________________ >> Do You Yahoo!? >> Get your free @yahoo.com address at http://mail.yahoo.com >> > > >_______________________________________________ >MinGW-users mailing list >Min...@li... > >You may change your MinGW Account Options at: >https://lists.sourceforge.net/lists/listinfo/mingw-users > |