123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- /*****************************************************************************
- * HalconCpp.h
- *****************************************************************************
- *
- * Project: HALCON/C++
- * Description: Defines / types / extern declarations for HALCON/C++ interface
- *
- * (c) 2010-2020 by MVTec Software GmbH
- * www.mvtec.com
- *
- *****************************************************************************
- *
- *
- *****************************************************************************/
- #ifndef HALCON_CPP_H
- #define HALCON_CPP_H
- // Architecture limitations
- #if !defined(HCPP_NO_INT_OVERLOADS)
- # define HCPP_INT_OVERLOADS
- #endif
- #if !defined(HCPP_NO_USE_IOSTREAM)
- # define HCPP_USE_IOSTREAM
- #endif
- // HALCON library includes
- #include "Halcon.h"
- // interface version
- // do not define a number because it can be loaded in parallel to version 10
- #define HCPP_INTERFACE_VERSION_11
- // Standard C++ library includes
- #ifdef HCPP_USE_IOSTREAM
- # include <iostream>
- #endif
- // Resolve known macro name collisions
- #if defined(_WIN32)
- /* include windows.h here, as Halcon.h does not include it anymore */
- # define _WINSOCKAPI_ /* use winsock2 */
- #include <Windows.h>
- //
- // FindText, CopyFile, CreateMutex, CreateEvent, and DeleteFile are also
- // functions of the Windows API. There are defines on FindTextW, CopyFileW,
- // CreateMutexW, CreateEventW, and DeleteFileW if UNICODE is defined,
- // otherwise there are defines on FindTextA, CopyFileA, CreateMutexA,
- // CreateMutexA, and DeleteFileA. These defines are undefined here. If you
- // want to use the corresponding Windows API calls, you must use FindTextA,
- // FindTextW, CopyFileA, CopyFileW, CreateMutexA, CreateMutexW, CreateEventA,
- // CreateEventW, DeleteFileA, or DeleteFileW directly.
- //
- #undef CopyFile
- #undef CreateMutex
- #undef CreateEvent
- #undef DeleteFile
- #undef FindText
- #endif
- // Macro to deprecate a method
- #if defined __GNUC__ && !defined HC_NO_LEGACY_WARNING
- # define GCC_VERSION (__GNUC__ * 10 + __GNUC_MINOR__)
- # if defined __INTEL_COMPILER || GCC_VERSION < 45
- # define HDEPRECATED( OBJ, MSG) OBJ __attribute__ ((deprecated))
- # else
- # define HDEPRECATED( OBJ, MSG) OBJ __attribute__ ((deprecated(MSG)))
- # endif
- #elif defined(_MSC_VER) && !defined HC_NO_LEGACY_WARNING
- # define HDEPRECATED( OBJ, MSG) __declspec(deprecated(MSG)) OBJ
- #else
- // no mechanism implemented for this compiler
- # define HDEPRECATED( OBJ, MSG) OBJ
- #endif
- #if defined(HCPP_LEGACY_API)
- // Allow usage of legacy exception handler
- # define HCPP_LEGACY_EXCEPTION
- #endif
- // HALCON/C++ types
- #include "halconcpp/HalconCppForwards.h"
- // HALCON/C++ includes
- #include "halconcpp/HTuple.h"
- #include "halconcpp/HVector.h"
- #include "halconcpp/HString.h"
- #include "halconcpp/HException.h"
- #include "halconcpp/HDevWindowStack.h"
- #include "halconcpp/HObjectBase.h"
- #include "halconcpp/HHandleBase.h"
- #include "halconcpp/HHandle.h"
- #include "halconcpp/HDataBase.h"
- #include "halconcpp/HOperatorOverloads.h"
- // Fully generated classes
- #include "halconcpp/HalconCppIncludes.h"
- // Include inline functions for streaming operations
- #include "halconcpp/HIOStream.h"
- /*****************************************************************************
- ** String Encoding for the HALCON/C++ interface
- ** This effects all char* strings used by HTuple, HString and the operators
- **---------------------------------------------------------------------------
- ** The global functions are for setting and requesting the string encoding
- ** used in the HALCON/C++ interface.
- *****************************************************************************/
- namespace HalconCpp
- {
- LIntExport void SetHcppInterfaceStringEncodingIsUtf8(bool is_utf8);
- LIntExport bool IsHcppInterfaceStringEncodingUtf8();
- }
- // Defining the following two preprocessor constants
- // enables a restricted source code compatibility mode
- // for procedural legacy code
- // Definining HCPP_LEGACY_API provides declarations for
- // Hobject and HTuple members that are
- #if defined(HCPP_LEGACY_API)
- // Allow to resolve obsolete class Hobject
- namespace HalconCpp
- {
- typedef HalconCpp::HObject Hobject;
- }
- // Allow to use global operator signatures with Herror return values */
- #include "halconcpp/HOperatorSetLegacy.h"
- // Defining HCPP_LEGACY_NAMESPACE will textually
- // replace all references to the Halcon namespace with
- // HalconCpp, with potential for name conflicts.
- #if defined(HCPP_LEGACY_NAMESPACE)
- // Remap namespace Halcon to HalconCpp
- #define Halcon HalconCpp
- #endif
- #endif // HCPP_LEGACY_API
- #endif // HALCON_CPP_H
|