newbie: including boost lib in a managed C++ dll (vc71)
Hi, I have only recently started using boost. platform win2k, winxp dev vs.net 2003 (vc7.1) I have downloaded the src & built boost libs using bjam. I have had no problems using them in std C++ apps. However, I have struck a prob in a case which has involved replacing my date/time code with boost::gregorian classes. I build an umanaged static lib which uses the boost date time stuff. The lib has been used successfully in a test harness (std C++ console app). This lib is then included in a manged C++ dll which exposes a std CLI interface, hiding the native c++ stuff. The managed dll is then included in a C# app. before I converted to boost, the whole arrangement worked ok. However now the C# app crashes when it calls code which jumps into the boost date lib. I have attempted to read up on the issue involved in having such a structure, & following advice from the ms on line help I have added a 'ManagedWrapper' class to the managed c++ dll (as per MS docs) which provides static methods to initialise the C++ run time lib. public __gc class ManagedWrapper { public: static int minitialize() { int retval = 0; try { __crt_dll_initialize(); } catch(System::Exception* e) { Console::WriteLine(e); retval = 1; } return retval; } static int mterminate() { int retval = 0; try { __crt_dll_terminate(); } catch(System::Exception* e) { Console::WriteLine(e); retval = 1; } return retval; } }; The C# calls the appropriate methods in Main static void Main(string[] args) { ManagedWrapper.minitialize(); TestFs(); TestAcct(); TestAccMgr(); ManagedWrapper.mterminate(); } At this point I think that I need to initialise statics within the boost lib. Does anyone have any advice on how to solve this issue (even if it means totally rearranging the dll wrapping a lib structure). Thanks Kon Tantos
participants (1)
-
KonT