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
#include
#include
#include
#include
#include
#include
#include
//=====================================================
// 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;
}