From: SourceForge.net <no...@so...> - 2006-02-26 23:47:09
|
Bugs item #1431456, was opened at 2006-02-14 13:26 Message generated for change (Settings changed) made by syntheticpp You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=396644&aid=1431456&group_id=29557 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None >Priority: 7 Submitted By: Peter Kuemmel (syntheticpp) Assigned to: Nobody/Anonymous (nobody) Summary: Dll export Initial Comment: Don't forget this forum post, it's maybe a bug. Peter __declspec (dllexport) is of course my favorite thing in the entire world. Don't get me started..... I'm getting warning C4275 on Microsoft Viz Studio 7.1 (2003 .NET). (Search C4275 in Dev Studio) I use the visitor like this: #if defined(WIN32) #if defined(_DLL) #define SGLWRL_DLL_API __declspec(dllexport) else #define SGLWRL_DLL_API __declspec(dllimport) #endif #else #define SGLWRL_DLL_API #endif class SGLWRL_DLL_API sglVRMLWriter: public Loki::BaseVisitor, //typelist that covers the //"basic" children of sglNode public Loki::Visitor< LOKI_TYPELIST_27( sglObject, sglNode, sglGeode, .... Lots of code clipped ... So I added a instantiation of the Loki::Visitor class like the Microsoft help page says to do, however Loki::BaseVisitor is still causeing warnings. My question is, should Loki be changed to have the stupid __declspec (dllexport) and __declspec (dllimport) variables in thew loki code? I think no one noticed this because they didn't test loki inside a .dll file. Unfortunately I'm not a big windows fan and barely understand these stupid tags I have to add to my classes in windows. You can only repeat this error if you try to use loki in code that goes into a dll. Larry E. Ramey ra...@si... ---------------------------------------------------------------------- Comment By: Marcus Lindblom (fizzgig) Date: 2006-02-24 11:38 Message: Logged In: YES user_id=197414 I've added a feature request to this with some info on how it's generally done. You need a macro (say LOKI_DECLSPEC) that goes onto every non-template entity (class/function/data). That may either be defined as empty (to be backwards compatible with the current code) or __declspec(x). This is usually handled via a few macros: #ifdef LOKI_COMPILE_DLL #define LOKI_DECLSPEC __declspel(dllexport) #elif defined(LOKI_USE_DLL) #define LOKI_DECLSPEC __declspel(dllimport) #else #define LOKI_DECLSPEC #endif This would make it backwards compatible and dll-users on win32 can just add defines when compiling. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=396644&aid=1431456&group_id=29557 |