kplato compile problem on windows

Dag Andersen danders at get2net.dk
Mon Jan 24 09:23:13 GMT 2011


Mandag 24 januar 2011 09:52:23 skrev Jan Hambrecht:
> On 24.01.2011 08:57, Pierre Stirnweiss wrote:
> > As some of may know, I am trying to get Calligra to compile on Windows
> > MSVC2010. I have encountered a couple of problems, which were easy
> > enough to solve (with the help of SaroEngels).
> > The one I am facing now is apparently way more complicated:
> > 
> > in kplato/libs/kernel/kpappointment.h we have the following:
> > 
> > class KPLATO_EXPORT AppointmentInterval {}
> > class KPLATO_EXPORT AppointmentIntervalList: public QMultiMap<QDate,
> > AppointmentInterval> {}
> > 
> > This construct yields the error C2487:
> > 'identifier' : member of dll interface class may not be declared with
> > dll interface
> > You can declare a whole class, or certain members of a non-DLL interface
> > class, with DLL interface. You cannot declare a class with DLL interface
> > and then declare a member of that class with DLL interface.
> > 
> > 
> > According to SaroEngels, both QDate and AppointmentInterval are
> > problematic here. A solution he proposed to this is to have the
> > following:
> > 
> > class KPLATO_EXPORT AppointmentInterval;
> > 
> > class AppointmentIntervalBase : public QMultiMap<QDate,
> > AppointmentInterval>
> > 
> > class KPLATO_EXPORT AppointmentIntervalList : public
> > AppointmentIntervalBase
> > 
> > 
> > Any further thought on this?
> 
> I would try to change the class from <Is a QMultimap> to <Has a
> QMultimap>. If I remember correctly from a short look yesterday, nowhere
> in the code are the QMultimap methods of AppointmentIntervalList used,
> beside within the implementation of AppointmentIntervalList itself.
Not quite true, but refactoring is not a *big* thing, it's mostly 
lowerBound(), upperbound().
So if this is the cleanest way, I can do that.
> So maybe using the follwing construct will work:
> 
> class AppointmentIntervalBase
> {
> // all your existing methods go here
> private:
>      QMultiMap<QDate, AppointmentInterval> m_data;
> };
> 
> Ciao Jan
> _______________________________________________
> calligra-devel mailing list
> calligra-devel at kde.org
> https://mail.kde.org/mailman/listinfo/calligra-devel

-- 
Mvh.
Dag Andersen



More information about the calligra-devel mailing list