I wonder why the heck, but it doesn't work for me.
I recompiled gtkmm 3 times already at no avail.
Used your suggestion to force include a header with following contents:
#ifndef GTKMM_ATKMM_ENABLED
*#define* *GTKMM_ATKMM_ENABLED 1*
#endif
I set in Common properties > C\C++ > Advanced > Force Include File > "the
name of the file".h
This didn't work
then I went on and defined preprocessor macro in
Common properties > C\C++ > Preprocessor > Preprocessor definitions >
GTKMM_ATKMM_ENABLED
Rebuilt solution clean, and no luck!
I also defined that macro in gtkmmconfig.h as well. recompiled and it still
does not work.
I also triple checked if gtkmmconfig.h has this macro defined in
installation directory where other test project search for headers.
Test project include this header by force as well.
What am I doing wrong here?
On Thu, Nov 19, 2015 at 5:35 PM, John Emmas <[email protected]> wrote:
> On 18/11/2015 21:51, John Emmas wrote:
>
> earlier today someone mentioned that if GTKMM_ATKMM_ENABLED is #defined when
> building the Gtkmm DLL, it must also get #defined in anything which uses that
> DLL. That makes a lot of sense - because otherwise, certain objects (e.g.
> class Widget) will have different sizes in different modules. To me, that
> sounds like a promising explanation for this 'delete' problem.
>
> [...]
>
> I'll try rebuilding everything, making absolutely sure that
> GTKMM_ATKMM_ENABLED is #defined in all modules. Fingers crossed, that might
> solve the problem!
>
>
>
> Hi Kjell. I just found some time to try the above strategy and guess
> what... that fixed it !!
>
> codekiddy - the secret to making this work is that every module which uses
> gtkmm MUST know the status of GTKMM_ATKMM_ENABLED. In theory,
> gtkmmconfig.h should achieve this - but to be absolutely certain (for
> testing purposes) I made use of MSVC's /FI option (ForceInclude). I used
> it to force include a specific header file in which I'd #defined
> GTKMM_ATKMM_ENABLED. This guarantees that *every* compiled source file
> will know about that #define. Simply making the change in gtkmmconfig.h
> should achieve the same thing but it looks like that isn't quite working
> properly.
>
> In fact, I know it isn't working properly - because after I used the /FI
> option, everything which previously linked to gtkmm now also needed to get
> linked to atkmm.
>
> So the problem is that something somewhere needs to be #including
> gtkmmconfig.h but is failing to do so. My guess would be 'gtkmm/window.cc'
> (maybe??) Perhaps even anything that references a Widget? If it forgets
> to #include widget.h the wrong size might be assumed for 'Widget'.
> Admittedly I'm guessing here - but it does seem like there's an important
> #include missing somewhere :-(
>
> John
>
> _______________________________________________
> gtkmm-list mailing list
> [email protected]
> https://mail.gnome.org/mailman/listinfo/gtkmm-list
>
>
_______________________________________________
gtkmm-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/gtkmm-list