39#define K_NO_PROJECTSETTINGS
40#define K_NO_NAMESPACE_UPGRADE
41#define K_NO_PYTHON_CODE_GENERATION
47#ifndef FB_KERNEL_WITH_UI
48 #define K_NO_MANIPULATOR
56 #define K_NO_STEERINGWHEEL
60 #define K_NO_IMAGEOPERATOR
65 #define K_NO_CONSTRUCTION_HISTORY
68 #define K_NO_CGFX_SHADER
79 #define K_NO_CGFX_SHADER
87 #ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
88 #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1
90 #ifndef _CRT_NONSTDC_NO_WARNINGS
91 #define _CRT_NONSTDC_NO_WARNINGS 1
93 #ifndef _CRT_SECURE_NO_WARNINGS
94 #define _CRT_SECURE_NO_WARNINGS 1
106#define KPROFILING_CODE_ENABLE
108#if defined(MEMORY_DEBUG) && defined(_DEBUG) && !defined(NDEBUG) && !defined(__CUDACC__) && defined(_MSC_VER) && !defined(_MFC_VER)
113 #define _CRTDBG_MAP_ALLOC
117 #define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )
121 #define MEMORY_DEBUG_ACTIVE 1
127 #if !defined(K_ENABLE_STREAM_FCURVE)
128 #define K_ENABLE_STREAM_FCURVE
135#ifndef K_NO_QUICKTIME
136 #if defined(KARCH_ENV_LINUX) || defined(KARCH_ENV_CYGWIN) || defined(KARCH_ENV_MING32)
137 #define K_NO_QUICKTIME
141#ifndef K_NO_ADVANCEDCONSTRAINTS
142 #if defined(KARCH_ENV_CYGWIN) || defined(KARCH_ENV_MING32)
143 #define K_NO_ADVANCEDCONSTRAINTS
148 #if defined(KARCH_ENV_CYGWIN) || defined(KARCH_ENV_MING32)
155 #define NULL (__null)
160 #define NULL ((void *)0)
165#if !defined( _MAX_PATH ) && defined( KARCH_ENV_UNIX )
166 #define _MAX_PATH 1024
169#define K_MAX_TEXT_LENGTH 1020
171#define K_FORWARD( ClassName ) class ClassName; typedef ClassName *H##ClassName
172#define K_FORWARD_HI( ClassName ) class ClassName; typedef ClassName *H##ClassName; typedef H##ClassName HI##ClassName
174#define K_SAFE_FREE_PTR( p ) if( p ){ free( p ); (p) = NULL; }
175#define K_SAFE_DELETE_PTR( p ) if( p ){ delete (p); (p) = NULL; }
176#define K_SAFE_DELETE_ARRAY_PTR( a ) if( a ){ delete [] (a); (a) = NULL; }
178#define K_SAFE_DESTROY_OBJECT( p ) { if( p ){ (p)->Destroy(); (p) = NULL; } }
180#define K_UNUSED_ARG(x) ((void)(x))
183 #ifndef WIN32_LEAN_AND_MEAN
184 #define WIN32_LEAN_AND_MEAN
193#if defined(KARCH_DEV_MSC)
195 #define stricmp _stricmp
198 #define strnicmp _strnicmp
201 #define getcwd _getcwd
204 #define getpid _getpid
207 #define fileno _fileno
210 #define fdopen _fdopen
218 #define _MSC_EMULATOR
223 #if !defined(_TRUNCATE)
224 #define _TRUNCATE ((size_t)-1)
226 inline int strcpy_s(
char* dst,
size_t ,
const char* src )
231 template <
size_t bufsize>
int strcpy_s(
char (&dst)[bufsize],
const char *src )
233 return strcpy_s( dst,bufsize,src );
236 inline int strncpy_s(
char* dst,
size_t ,
const char* src,
size_t count )
238 strncpy( dst,src,count );
241 template <
size_t bufsize>
int strncpy_s(
char (&dst)[bufsize],
const char *src,
size_t count )
243 return strncpy_s( dst,bufsize,src,count );
246 inline int vsprintf_s(
char *buffer,
size_t ,
const char *format, va_list args )
248 return vsprintf( buffer,format, args );
250 template <
size_t bufsize>
int vsprintf_s(
char (&buffer)[bufsize],
const char *format, va_list args )
252 return vsprintf_s( buffer,bufsize,format, args );
255 inline int sprintf_s(
char *buffer,
size_t bufsize,
const char *format, ... )
258 va_start( Arguments, format);
259 int result = vsprintf_s( buffer,bufsize,format, Arguments );
263 template <
size_t bufsize>
int sprintf_s(
char (&buffer)[bufsize],
const char *format, ... )
266 va_start( Arguments, format);
267 int result = vsprintf_s( buffer,bufsize,format, Arguments );
273 #define sscanf_s sscanf
276 inline int strcat_s(
char *dst,
size_t ,
const char *src )
281 template <
size_t bufsize>
int strcat_s(
char (&dst)[bufsize],
const char *src )
283 return strcat_s( dst,bufsize,src );
287 #define strtok_s( token,sep,context ) strtok( token,sep ); K_UNUSED_ARG(context)
291 #define strncat_s( dst,bufsize,src,len ) strncat( dst,src,len ); K_UNUSED_ARG(bufsize)
295 #define localtime_s( _Tm,_Time ) _Tm = localtime( _Time )
299 #define _strdup strdup
303 #define _stricmp strcasecmp
306 #define strcmpi strcasecmp
309 #define _strcmpi strcasecmp
312 #define stricmp strcasecmp
315 #define strncmpi strncasecmp
318 #define strnicmp strncasecmp
322 #define _atoi64( str ) strtoll( str,NULL,10 )
327#if defined(KARCH_ENV_LINUX)
329 #pragma GCC diagnostic ignored "-Wdelete-non-virtual-dtor"
333#if defined(KARCH_DEV_MSC)
334 #pragma warning(disable : 4097)
335 #pragma warning(disable : 4100)
336 #pragma warning(disable : 4201)
337 #pragma warning(disable : 4244)
338 #pragma warning(disable : 4251)
339 #pragma warning(disable : 4481)
340 #pragma warning(disable : 4514)
341 #pragma warning(disable : 4660)
342 #pragma warning(disable : 4710)
343 #pragma warning(disable : 4711)
344 #pragma warning(disable : 4725)
346 #pragma warning(error : 4002)
347 #pragma warning(error : 4013)
348 #pragma warning(error : 4018)
350 #pragma warning(error : 4101)
351 #pragma warning(error : 4130)
352 #pragma warning(error : 4189)
353 #pragma warning(error : 4238)
354 #pragma warning(error : 4265)
355 #pragma warning(error : 4289)
356 #pragma warning(error : 4311)
357 #pragma warning(error : 4373)
358 #pragma warning(error : 4407)
359 #pragma warning(error : 4431)
360 #pragma warning(error : 4510)
361 #pragma warning(error : 4551)
362 #pragma warning(error : 4553)
363 #pragma warning(error : 4700)
364 #pragma warning(error : 4701)
365 #pragma warning(error : 4946)
366 #pragma warning(error : 4996)
368 #pragma warning(error : 5245)
383#if(PRODUCT_VERSION<=2024)
384 #define K_DEPRECATED_2020 [[deprecated]]
386#if(PRODUCT_VERSION<=2025)
387 #define K_DEPRECATED_2022 [[deprecated]]
389#if(PRODUCT_VERSION<=2026)
390 #define K_DEPRECATED_2023 [[deprecated]]
392#if(PRODUCT_VERSION<=2027)
393 #define K_DEPRECATED_2024 [[deprecated]]