On Tue, 2014-04-08 at 17:39 +0200, Yann Leydier wrote:
> Hi,
> 
> when I first saw that Gtkmm was using wrappers to handle conversions to 
> STL containers, I thought that it was expected, because Visual C++'s STL 
> implementation is not fully compatible with the DLL import/export system.
> 
> Up to now, I was using STLport to enable the use of STL in my DLLs (thus 
> I had to recompile Gtkmm with STLport…) and I'm currently looking for 
> another solution. I tried to look at how Glibmm does it and I'm quite 
> confused.
> 
> It should be OK to work with vectors, provided you export the right 
> symbols. I suppose gendef does this, but it's difficult to check since 
> the symbols are mangled.
> 
> According to MSDN, it should be totally impossible to use maps in the 
> API, however in markup.h (version 2.28.2), there is a typedef on a map:
> typedef std::map<Glib::ustring, Glib::ustring, 
> Glib::Markup::AttributeKeyLess> AttributeMap;
> This type is then used in a method of the class Parser:
> virtual void on_start_element(ParseContext& context,
> const Glib::ustring& element_name,
> const AttributeMap& attributes);
> 
> This is the same as passing a reference to a map from the main program 
> to the DLL, which should cause an undefined behaviour (in my past 
> experience it always caused a crash).
> 
> Is it a bug? If not, does someone know why/how it works?

Maybe that particular API has never been used on Windows?

-- 
Murray Cumming
murr...@murrayc.com
www.murrayc.com


_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to