cisst-saw
Loading...
Searching...
No Matches
cmnPlugin.h
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3
4/*
5
6 Author(s): Peter Kazanzides
7 Created on: 2007-01-16
8
9 (C) Copyright 2007-2007 Johns Hopkins University (JHU), All Rights
10 Reserved.
11
12--- begin cisst license - do not edit ---
13
14This software is provided "as is" under an open source license, with
15no warranty. The complete license can be found in license.txt and
16http://www.cisst.org/cisst/license.txt.
17
18--- end cisst license ---
19*/
20
21
41#pragma once
42
43#ifndef _cmnPlugin_h
44#define _cmnPlugin_h
45
46#include <typeinfo>
48
56
57#define CMN_PLUGIN_WRAPPERS(base, derived) \
58 extern "C" CISST_EXPORT base* derived##Create() \
59 { return new derived; } \
60 extern "C" CISST_EXPORT void derived##Destroy(base* obj) \
61 { delete obj; obj = 0; } \
62 extern "C" CISST_EXPORT const std::type_info &derived##BaseType = typeid(base); \
63 extern "C" CISST_EXPORT const int derived##Version = derived::VERSION;
64
65
66#endif // _cmnPlugin_h
67
Macros to export the symbols of cisstCommon (in a Dll).