OceanDirect  1.31.0
OceanDirect C++/C API
DllDecl.h
1 /*******************************************************
2  * @file DllDecl.h
3  * @date September 2018
4  * @author Ocean Optics, Inc.
5  *
6  * This class provides the DLL import/export decorations
7  * required for Windows DLLs. It is encapsulated to
8  * reduce copy-paste and to allow a single point of
9  * maintenance.
10  */
11  /************************************************************************
12  *
13  * OCEAN INSIGHT CONFIDENTIAL
14  * __________________
15  *
16  * [2018] - [2020] Ocean Insight Incorporated
17  * All Rights Reserved.
18  *
19  * NOTICE: All information contained herein is, and remains
20  * the property of Ocean Insight Incorporated and its suppliers,
21  * if any. The intellectual and technical concepts contained
22  * herein are proprietary to Ocean Insight Incorporated
23  * and its suppliers and may be covered by U.S. and Foreign Patents,
24  * patents in process, and are protected by trade secret or copyright law.
25  * Dissemination of this information or reproduction of this material
26  * is strictly forbidden unless prior written permission is obtained
27  * from Ocean Insight Incorporated.
28  *
29  **************************************************************************/
30 
31 #ifndef OCEANDIRECT_DLL_DECL_H
32 #define OCEANDIRECT_DLL_DECL_H
33 
34 #ifdef _WINDOWS
35  #ifdef BUILD_DLL
36  #define DLL_DECL __declspec(dllexport)
37  #else
38  #define DLL_DECL __declspec(dllimport)
39  #endif
40 
41  // "STL member 'oceandirect::api::Foo::foo' needs to have dll-interface
42  // to be used by clients of class 'oceandirect::api::Foo'"
43  #pragma warning (disable: 4251)
44 
45  // "non dll-interface class 'oceandirect::Foo' used as base for dll-interface
46  // class 'oceandirect::api::Bar'"
47  #pragma warning (disable: 4275)
48 #else
49  #define DLL_DECL
50 #endif
51 
52 #endif