On 26 Sep 2014, at 23:33, Arnavion wrote:

> 
> If I'm understanding the situation correctly, you're building a binary
> that includes an atk(mm) header that has some functions marked with
> dllexport (from the POV of the compiler when it's compiling your
> code).
> 
> [...]
> 
> 
>> At the end of last year I discovered that some very obscure problems can 
>> arise if we try to import symbols from a DLL without using 
>> '__declspec(dllimport)'.
> 
> That is correct, and is mentioned in MSDN [1] and also explained in
> this answer on StackOverflow [2]. It's sub-optimal to not use
> dllimport for functions and outright incorrect to not use it for data.
> 

Yes, that just about summarises the situation.  I first discovered this 
happening in gtkmm (class Gtk::SpinButton) - but during my investigations I 
realised that the same anomaly might (potentially) be present in the other "mm" 
libraries (particularly so in giomm and atkmm).  There isn't necessarily a 
problem right at this moment.  It's more the case that there's "a problem 
waiting to happen".

FWIW I also noticed that libatk defines ATK_VAR for dealing with data, as 
opposed to functions.  That should help to avoid the data issue but like you 
said Arnavion, function handling is currently sub-optimal (although it doesn't 
seem like a massive job to fix it).  I'm just flagging the situation up really. 
 It could probably benefit from being tidied up at some stage but it's not 
something which needs 'imminent' attention...

John
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list

Reply via email to