I'm writing a DLL which uses Boost for the Serialization (version 1.36.0).
Because it has to maintain in different system I want to maintain a pure C-Interface DLL.
 
As soon as I use the Boost-Library by activating the two lines
      boost::archive::text_iarchive ia(is);
      ia >> foo;
in the function CNwDeSerialize_Test( )
it's C++ Interface becomes exposed in my C-Interface.
 
Anybody got an idea why and what I can do to prevent it ?
 
Regards
Martin
 
//=====================================================
// Modul: stdafx.h
 
#include <boost/archive/tmpdir.hpp>
 
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
 
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/utility.hpp>
#include <boost/serialization/list.hpp>
#include <boost/serialization/assume_abstract.hpp>
 
#include <boost/shared_ptr.hpp>
 
//=====================================================
// Modul: ChannelNwManager.h
// ChannelNwManager.h : Defines the exported functions for the DLL application.
//
 
#ifdef __cplusplus
extern "C" {
#endif
 
#ifdef CHANNELNWMANAGER_EXPORTS
#define CHNNWMANAGER_API extern "C" __declspec(dllexport)
#else
#define CHNNWMANAGER_API extern "C" __declspec(dllimport)
#endif
 
CHNNWMANAGER_API void
CNwDeSerialize_Test( void );
 
#ifdef __cplusplus
}
#endif
 
 
//=====================================================
// Modul: ChannelNwManager.cpp
 
#include "stdafx.h"
 
 
extern "C" __declspec(dllexport) void
CNwDeSerialize_Test( )
{
      int foo;
      std::istringstream is("1");
//    boost::archive::text_iarchive ia(is);
//    ia >> foo;
}
 
// =====================================================
// Modul: ChannelNwManager.cpp
 
#include "stdafx.h"
 
 
extern "C" __declspec(dllexport) void
CNwDeSerialize_Test( )
{
      int foo;
      std::istringstream is("1");
      boost::archive::text_iarchive ia(is);
      ia >> foo;
}