Crypto++ 8.7
Free C++ class library of cryptographic schemes
|
Library configuration file. More...
Go to the source code of this file.
Macros | |
#define | CRYPTOPP_IMPORTS ... |
Win32 define for dynamic link libraries. More... | |
#define | CRYPTOPP_EXPORTS ... |
Win32 define for dynamic link libraries. More... | |
#define | CRYPTOPP_IS_DLL |
Win32 define for dynamic link libraries. More... | |
#define | CRYPTOPP_DLL_TEMPLATE_CLASS ... |
Instantiate templates in a dynamic library. More... | |
#define | CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS ... |
Instantiate templates in a dynamic library. More... | |
#define | CRYPTOPP_STATIC_TEMPLATE_CLASS ... |
Instantiate templates in a dynamic library. More... | |
#define | CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS ... |
Instantiate templates in a dynamic library. More... | |
#define | CRYPTOPP_TABLE extern |
Override for internal linkage. More... | |
#define | CRYPTOPP_API ... |
Win32 calling convention. More... | |
Library configuration file.
config_dll.h
provides defines for shared objects and dynamic libraries. Generally speaking the macros are used to export classes and template classes from the Win32 dynamic link library. When not building the Win32 dynamic link library they are mostly an extern template declaration.
In practice they are a furball coughed up by a cat and then peed on by a dog. They are awful to get just right because of inconsistent compiler support for extern templates, manual instantiation and the FIPS DLL.
config.h
was split into components in May 2019 to better integrate with Autoconf and its feature tests. The splitting occurred so users could continue to include config.h
while allowing Autoconf to write new config_asm.h
and new config_cxx.h
using its feature tests.
config.h
rather than config_dll.h
directly. Definition in file config_dll.h.
#define CRYPTOPP_IMPORTS ... |
Win32 define for dynamic link libraries.
CRYPTOPP_IMPORTS is set in the Visual Studio project files. When the macro is set, CRYPTOPP_DLL
is defined to __declspec(dllimport)
.
This macro has no effect on Unix & Linux.
Definition at line 45 of file config_dll.h.
#define CRYPTOPP_EXPORTS ... |
Win32 define for dynamic link libraries.
CRYPTOPP_EXPORTS is set in the Visual Studio project files. When the macro is set, CRYPTOPP_DLL
is defined to __declspec(dllexport)
.
This macro has no effect on Unix & Linux.
Definition at line 55 of file config_dll.h.
#define CRYPTOPP_IS_DLL |
Win32 define for dynamic link libraries.
CRYPTOPP_IS_DLL is set in the Visual Studio project files.
Definition at line 62 of file config_dll.h.
#define CRYPTOPP_DLL_TEMPLATE_CLASS ... |
Instantiate templates in a dynamic library.
CRYPTOPP_DLL_TEMPLATE_CLASS decoration should be used for classes intended to be exported from dynamic link libraries.
This macro is primarily used on Win32, but sees some action on Unix & Linux due to the source file dll.cpp
.
Definition at line 72 of file config_dll.h.
#define CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS ... |
Instantiate templates in a dynamic library.
CRYPTOPP_EXTERN_DLL_TEMPLATE_CLASS decoration should be used for template classes intended to be exported from dynamic link libraries.
This macro is primarily used on Win32, but sees some action on Unix & Linux due to the source file dll.cpp
.
Definition at line 82 of file config_dll.h.
#define CRYPTOPP_STATIC_TEMPLATE_CLASS ... |
Instantiate templates in a dynamic library.
CRYPTOPP_STATIC_TEMPLATE_CLASS decoration should be used for template classes intended to be exported from dynamic link libraries.
This macro is primarily used on Win32, but sees some action on Unix & Linux due to the source file dll.cpp
.
Definition at line 92 of file config_dll.h.
#define CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS ... |
Instantiate templates in a dynamic library.
CRYPTOPP_EXTERN_STATIC_TEMPLATE_CLASS decoration should be used for template classes intended to be exported from dynamic link libraries.
This macro is primarily used on Win32, but sees some action on Unix & Linux due to the source file dll.cpp
.
Definition at line 102 of file config_dll.h.
#define CRYPTOPP_TABLE extern |
Override for internal linkage.
CRYPTOPP_TABLE can be used to override internal linkage on tables with the const
qualifier. According to C++ rules a declaration with const
qualifier is internal linkage.
Definition at line 111 of file config_dll.h.
#define CRYPTOPP_API ... |
Win32 calling convention.
CRYPTOPP_API sets the calling convention on Win32. On Win32 CRYPTOPP_API is __cedcl
. On Unix & Linux CRYPTOPP_API is defined to nothing.
Definition at line 119 of file config_dll.h.