I can try the nepomuk solution (using KPLATO_EXPORT on each methods of the class instead of on the class itself) this evening. This would probably be the minimal impact solution.<br>Just so I am clear, it seems that in nepomuk they have only specified NEPOMUK_EXPORT on some of the methods. My assumption is that they exported only the methods which were really used outside? Otherwise I don't really understand why isFileDataObject would get the EXPORT and not isFolder for example.<br>
<br>PierreSt<br><br><div class="gmail_quote">On Mon, Jan 24, 2011 at 10:23 AM, Dag Andersen <span dir="ltr"><<a href="mailto:danders@get2net.dk">danders@get2net.dk</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Mandag 24 januar 2011 09:52:23 skrev Jan Hambrecht:<br>
<div><div></div><div class="h5">> On 24.01.2011 08:57, Pierre Stirnweiss wrote:<br>
> > As some of may know, I am trying to get Calligra to compile on Windows<br>
> > MSVC2010. I have encountered a couple of problems, which were easy<br>
> > enough to solve (with the help of SaroEngels).<br>
> > The one I am facing now is apparently way more complicated:<br>
> ><br>
> > in kplato/libs/kernel/kpappointment.h we have the following:<br>
> ><br>
> > class KPLATO_EXPORT AppointmentInterval {}<br>
> > class KPLATO_EXPORT AppointmentIntervalList: public QMultiMap<QDate,<br>
> > AppointmentInterval> {}<br>
> ><br>
> > This construct yields the error C2487:<br>
> > 'identifier' : member of dll interface class may not be declared with<br>
> > dll interface<br>
> > You can declare a whole class, or certain members of a non-DLL interface<br>
> > class, with DLL interface. You cannot declare a class with DLL interface<br>
> > and then declare a member of that class with DLL interface.<br>
> ><br>
> ><br>
> > According to SaroEngels, both QDate and AppointmentInterval are<br>
> > problematic here. A solution he proposed to this is to have the<br>
> > following:<br>
> ><br>
> > class KPLATO_EXPORT AppointmentInterval;<br>
> ><br>
> > class AppointmentIntervalBase : public QMultiMap<QDate,<br>
> > AppointmentInterval><br>
> ><br>
> > class KPLATO_EXPORT AppointmentIntervalList : public<br>
> > AppointmentIntervalBase<br>
> ><br>
> ><br>
> > Any further thought on this?<br>
><br>
> I would try to change the class from <Is a QMultimap> to <Has a<br>
> QMultimap>. If I remember correctly from a short look yesterday, nowhere<br>
> in the code are the QMultimap methods of AppointmentIntervalList used,<br>
> beside within the implementation of AppointmentIntervalList itself.<br>
</div></div>Not quite true, but refactoring is not a *big* thing, it's mostly<br>
lowerBound(), upperbound().<br>
So if this is the cleanest way, I can do that.<br>
<div class="im">> So maybe using the follwing construct will work:<br>
><br>
> class AppointmentIntervalBase<br>
> {<br>
> // all your existing methods go here<br>
> private:<br>
>      QMultiMap<QDate, AppointmentInterval> m_data;<br>
> };<br>
><br>
> Ciao Jan<br>
> _______________________________________________<br>
> calligra-devel mailing list<br>
> <a href="mailto:calligra-devel@kde.org">calligra-devel@kde.org</a><br>
> <a href="https://mail.kde.org/mailman/listinfo/calligra-devel" target="_blank">https://mail.kde.org/mailman/listinfo/calligra-devel</a><br>
<br>
</div>--<br>
Mvh.<br>
<font color="#888888">Dag Andersen<br>
</font><div><div></div><div class="h5">_______________________________________________<br>
calligra-devel mailing list<br>
<a href="mailto:calligra-devel@kde.org">calligra-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/calligra-devel" target="_blank">https://mail.kde.org/mailman/listinfo/calligra-devel</a><br>
</div></div></blockquote></div><br>