96 #ifndef _SIZE_T_DEFINED 97 #define _SIZE_T_DEFINED 98 #endif //_SIZE_T_DEFINED 107 #define _FX_WIN32_DESKTOP_ 1 110 #define _FX_WIN32_MOBILE_ 2 116 #define _FX_LINUX_DESKTOP_ 4 119 #define _FX_LINUX_EMBEDDED_ 5 121 #define _FX_SYMBIAN_ 6 124 #define _FX_MACOSX_ 7 127 #define _FX_EMBEDDED_ 8 129 #define _FX_SOLARIS_ 9 131 #define _FX_PALMOS_ 10 133 #define _FX_NETBSD_ 11 137 #define _FX_ANDROID_ 12 140 #define _FX_VXWORKS_ 13 147 #define _FXM_PLATFORM_WINDOWS_ 1 149 #define _FXM_PLATFORM_LINUX_ 2 151 #define _FXM_PLATFORM_APPLE_ 3 153 #define _FXM_PLATFORM_ANDROID_ 4 156 #define _CHROME_PNACL_ 159 #if defined(_FXM_PLATFORM_LINUX_JS_) || defined(_CHROME_PNACL_) 160 #define _FX_OS_ _FX_LINUX_DESKTOP_ 161 #define _FXM_PLATFORM_ _FXM_PLATFORM_LINUX_ 167 #if defined(__SYMBIAN32__) || defined(__symbian__) 168 #define _FX_OS_ _FX_SYMBIAN_ 169 #elif defined(_WIN32_WCE) 170 #define _FX_OS_ _FX_WIN32_MOBILE_ 171 #define _FXM_PLATFORM_ _FXM_PLATFORM_WINDOWS_ 172 #if defined (_WIN32_WCE) && (_WIN32_WCE == 0x600) 173 #define UNSUPPORT_CPP0X 175 #elif defined(__linux__) || defined(__native_client__) 176 #if ((defined(__arm__) || defined(__aarch64__)) && defined(__ARM_EABI__)) && (!defined(OS_CHROMEOS)) 177 #define _FX_OS_ _FX_LINUX_EMBEDDED_ 179 #define _FX_OS_ _FX_LINUX_DESKTOP_ 181 #define _FXM_PLATFORM_ _FXM_PLATFORM_LINUX_ 182 #elif defined(__NetBSD__) 183 #define _FX_OS_ _FX_NETBSD_ 184 #elif defined(_WIN64) 185 #define _FX_OS_ _FX_WIN64_ 186 #define _FXM_PLATFORM_ _FXM_PLATFORM_WINDOWS_ 187 #elif defined(_WIN32) 188 #define _FX_OS_ _FX_WIN32_DESKTOP_ 189 #define _FXM_PLATFORM_ _FXM_PLATFORM_WINDOWS_ 190 #elif defined(__sparc__) 191 #define _FX_OS_ _FX_SOLARIS_ 192 #define _FXM_PLATFORM_ _FXM_PLATFORM_LINUX_ 193 #elif defined(__ARMCC_VERSION) || defined(__ICCARM__) || defined(__TMS470__) 194 #define _FX_OS_ _FX_EMBEDDED_ 195 #elif defined(__APPLE__) 196 #include "TargetConditionals.h" 197 #if (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE == 1) || (defined(TARGET_IPHONE_SIMULATOR) && TARGET_IPHONE_SIMULATOR == 1) 198 #define _FX_OS_ _FX_IOS_ 200 #define _FX_OS_ _FX_MACOSX_ 202 #define _FXM_PLATFORM_ _FXM_PLATFORM_APPLE_ 203 #elif defined(__ARM_EABI__) 204 #define _FX_OS_ _FX_EMBEDDED_ 207 #if _FX_OS_ == _FX_ANDROID_ 208 #ifndef _FXM_PLATFORM_ 209 #define _FXM_PLATFORM_ _FXM_PLATFORM_ANDROID_ 211 #elif (_FX_OS_ == _FX_WIN32_MOBILE_ || _FX_OS_ == _FX_WIN64_ || _FX_OS_ == _FX_WIN32_DESKTOP_) 212 #ifndef _FXM_PLATFORM_ 213 #define _FXM_PLATFORM_ _FXM_PLATFORM_WINDOWS_ 215 #elif (_FX_OS_ == _FX_IOS_ || _FX_OS_ == _FX_MACOSX_) 216 #ifndef _FXM_PLATFORM_ 217 #define _FXM_PLATFORM_ _FXM_PLATFORM_APPLE_ 219 #elif _FX_OS_ == _FX_SOLARIS_ || _FX_OS_ == _FX_LINUX_EMBEDDED_ || _FX_OS_ == _FX_LINUX_DESKTOP_ 220 #ifndef _FXM_PLATFORM_ 221 #define _FXM_PLATFORM_ _FXM_PLATFORM_LINUX_ 226 #if !defined(_FX_OS_) || _FX_OS_ == 0 227 #error 抱歉,无法确定您的目标操作系统。请指定_FX_OS_宏。 231 #if (_FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN32_MOBILE_ || _FX_OS_ == _FX_WIN64_) && !defined(_FX_NO_WINDOWS_) 233 #ifndef _CRT_SECURE_NO_WARNINGS 234 #define _CRT_SECURE_NO_WARNINGS 235 #endif //_CRT_SECURE_NO_WARNINGS 236 #if defined(_MSC_VER) && _MSC_VER < 1300 237 #define _WIN32_WINNT 0x400 239 #if defined(_MSC_VER) && _MSC_VER < 1600 240 #define UNSUPPORT_CPP0X 248 #if (0x00000001 == WINAPI_PARTITION_DESKTOP) && (0x00000002 == WINAPI_PARTITION_APP) //Macros in Windows Kit/8 250 #else //Macros in Windows Kit/8.1 252 #endif //(0x00000001 == WINAPI_PARTITION_DESKTOP) && (0x00000002 == WINAPI_PARTITION_APP) 255 #if ((WINAPI_FAMILY&WINAPI_PARTITION_APP) == WINAPI_PARTITION_APP) 257 #define _FX_WINAPI_PARTITION_APP_ 259 #if defined(WINAPI_FAMILY) && ((WINAPI_FAMILY&WINAPI_PARTITION_DESKTOP) == WINAPI_PARTITION_DESKTOP) 261 #define _FX_WINAPI_PARTITION_DESKTOP_ 267 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PC_APP) 269 #define _FX_WINAPI_PARTITION_APP_ 272 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PC_APP) 274 #define _FX_WINAPI_PARTITION_PHONE_APP_ 277 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) 279 #define _FX_WINAPI_PARTITION_DESKTOP_ 282 #else // !defined(WINAPI_FAMILY) 284 #define _FX_WINAPI_PARTITION_DESKTOP_ 286 #endif //WINAPI_FAMILY 287 #endif //(_FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN32_MOBILE_ || _FX_OS_ == _FX_WIN64_) && !defined(_FX_NO_WINDOWS_) 312 #define _FX_NOKIA_X86_ 8 314 #define _FX_METROWERKS_ 9 318 #define _FX_TMS470_ 11 320 #define _FX_MIPS_SDE_ 12 323 #ifndef _FX_COMPILER_ 326 #define _FX_COMPILER_ _FX_VC8_ 327 #elif _MSC_VER >= 1300 328 #define _FX_COMPILER_ _FX_VC7_ 349 #define _FX_COMPILER_ _FX_VC6_ 351 #elif defined(__GNUC__) 352 #define _FX_COMPILER_ _FX_GCC_ 353 #elif defined(__ARMCC_VERSION) 354 #if __ARMCC_VERSION < 200000 355 #define _FX_COMPILER_ _FX_ADS_ 357 #define _FX_COMPILER_ _FX_RVCT_ 359 #elif defined(__ICCARM__) 360 #define _FX_COMPILER_ _FX_IARCC_ 361 #elif defined(_PACC_VER) 362 #define _FX_COMPILER_ _FX_PACC_ 363 #elif defined(__TMS470__) 364 #define _FX_COMPILER_ _FX_TMS470_ 367 #if !defined(_FX_COMPILER_) || _FX_COMPILER_ == 0 368 #error 抱歉,无法确定您使用的编译器。请指定_FX_COMPILER_宏。 384 #define _FX_POWERPC_ 3 396 #define _FX_MIPS64_ 9 398 #define _FX_LOONGARCH64_ 10 400 #if defined(_FXM_PLATFORM_LINUX_JS_) 401 #if defined(__wasm64__) 402 #define _FX_CPU_ _FX_X64_ 404 #define _FX_CPU_ _FX_X86_ 405 #endif // defined(__wasm64__) 406 #endif // defined(_FXM_PLATFORM_LINUX_JS_) 408 #if defined(_CHROME_PNACL_) 409 #define _FX_CPU_ _FX_X86_ 413 #if defined(__arm__) || defined(ARM) || defined(_ARM_) || defined(__ARMCC_VERSION) || defined(__ICCARM__) || defined(__arm) || defined(arm9) || defined(_M_ARM) 414 #define _FX_CPU_ _FX_ARM_ 415 #elif defined(__arm64) || defined(__arm64__) || defined(__aarch64__) || defined(_ARM64_) || defined(_M_ARM64) 416 #define _FX_CPU_ _FX_ARM64_ 417 #elif defined(_M_IX86) || defined(__i386__) 433 #define _FX_CPU_ _FX_X86_ 434 #elif defined(_M_X64) || defined(__x86_64__) 435 #define _FX_CPU_ _FX_X64_ 436 #elif defined(_M_IA64) 437 #define _FX_CPU_ _FX_IA64_ 438 #elif defined(__POWERPC__) 439 #define _FX_CPU_ _FX_POWERPC_ 440 #elif defined(__sparc__) 441 #define _FX_CPU_ _FX_SPARC_ 442 #elif defined(__mips64) 443 #define _FX_CPU_ _FX_MIPS64_ 444 #elif defined(__loongarch64) 445 #define _FX_CPU_ _FX_LOONGARCH64_ 446 #elif defined(__sw_64__) || defined(__sw_64) 447 #define _FX_CPU_ _FX_SW64_ 448 #elif defined(MIPS) || defined(_MIPS_) || defined(__mips) 449 #define _FX_CPU_ _FX_MIPS_ 452 #if !defined(_FX_CPU_) || _FX_CPU_ == 0 453 #error 抱歉,无法确定您的目标CPU。请指定_FX_CPU_宏。 460 #define _FX_EMBEDFONT_PRINT_ 464 #if defined linux || defined __linux__ 465 #define _FX_EMBEDFONT_PRINT_ 480 #ifndef _FX_WORDSIZE_ 481 #if defined(_WIN64) || defined(__arm64) || defined(__arm64__) || defined(_M_AMD64) || \ 482 defined(_M_X64) || defined(_M_IA64) || defined(__powerpc64__) || defined(__x86_64__) || \ 483 __WORDSIZE == 64 || defined(__LP64__) || defined(__mips64) || defined(__loongarch64) 484 #define _FX_WORDSIZE_ _FX_W64_ 486 #define _FX_WORDSIZE_ _FX_W32_ 499 #define _FX_BIG_ENDIAN_ 1 501 #define _FX_LITTLE_ENDIAN_ 2 505 #if _FX_CPU_ == _FX_POWERPC_ || _FX_CPU_ == _FX_SPARC_ 506 #define _FX_ENDIAN_ _FX_BIG_ENDIAN_ 517 #define _FX_ENDIAN_ _FX_LITTLE_ENDIAN_ 530 #ifndef _FX_NO_ANSIC_ 535 #if _FX_OS_ != _FX_VXWORKS_ && ((_FX_COMPILER_ == _FX_GCC_ && _FX_OS_ != _FX_SYMBIAN_) || _FX_COMPILER_ == _FX_NOKIA_X86_ || _FX_COMPILER_ == _FX_METROWERKS_ || _FX_COMPILER_ == _FX_IARCC_) 542 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ 543 #include <libkern/OSAtomic.h> 544 #if _FX_OS_ == _FX_MACOSX_ 545 #include <Carbon/Carbon.h> 546 #elif _FX_OS_ == _FX_IOS_ 547 #include <CoreText/CoreText.h> 548 #include <CoreGraphics/CoreGraphics.h> 554 #define GetModuleFileName GetModuleFileNameW 555 #define GetFullPathName GetFullPathNameW 562 #define GetModuleFileName GetModuleFileNameA 568 #define GetFullPathName GetFullPathNameA 571 #if ( _FX_OS_ == _FX_IOS_ && (_FX_CPU_ == _FX_ARM_ || _FX_CPU_ == _FX_ARM64_)) || (_FX_OS_ == _FX_ANDROID_) || (_FX_OS_ == _FX_WIN32_MOBILE_) 572 #ifndef _FXCORE_LIMITED_MEMORY_ 573 #define _FXCORE_LIMITED_MEMORY_ 575 #ifndef _FXCORE_LIMITED_CPU_ 576 #define _FXCORE_LIMITED_CPU_ 580 #if _FX_COMPILER_ == _FX_ADS_ || _FX_COMPILER_ == _FX_RVCT_ || _FX_COMPILER_ == _FX_TMS470_ || _FX_OS_ == _FX_ANDROID_ 582 #define _FX_NO_NAMESPACE_ 591 #define _FX_DEFAULT_TARGET_ 0 598 #if (((_FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_) && (defined(_FX_WINAPI_PARTITION_DESKTOP_) || defined(_FX_WINAPI_PARTITION_APP_))) || _FX_OS_ == _FX_LINUX_DESKTOP_ || _FX_OS_ == _FX_MACOSX_) 600 #if !defined(_FXM_PLATFORM_LINUX_JS_) && !defined(_CHROME_PNACL_) && (_FX_CPU_ != _FX_ARM_) && \ 601 (_FX_CPU_ != _FX_ARM64_) && (_FX_CPU_ != _FX_MIPS_) && (_FX_CPU_ != _FX_MIPS64_) && \ 602 (_FX_CPU_ != _FX_LOONGARCH64_) 607 #if _FX_OS_ != _FX_MACOSX_ 611 #ifndef _FX_NO_OPENSSL_ 612 #define _FX_NO_OPENSSL_ 615 #if (((_FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_) && defined(_FX_WINAPI_PARTITION_DESKTOP_)) || _FX_OS_ == _FX_LINUX_DESKTOP_ || _FX_OS_ == _FX_MACOSX_) 616 #ifndef _FX_NO_JPEG_TURBO_ 617 #if !defined(_CHROME_PNACL_) 618 #define _FX_JPEG_TURBO_ 621 #ifndef _FX_NO_OPENSSL_ 622 #define _FXM_OPENSSL_ 624 #define _FX_LARGEFILE_SUPPORT_ 628 #ifndef _FXM_FEATURE_LIGHT_ 629 #define _FPDF_STREAM_RENDER_ 631 #ifndef _FX_ENABLE_OVERPRINT_ 632 #ifndef _FXM_FEATURE_LIGHT_ 633 #define _FX_ENABLE_OVERPRINT_ 638 #if _FX_OS_ == _FX_LINUX_EMBEDDED_ 639 #ifndef _FX_ENABLE_OVERPRINT_ 640 #define _FX_ENABLE_OVERPRINT_ 644 #ifdef _FX_WINAPI_PARTITION_APP_ 645 #define _FPDF_STREAM_RENDER_ 702 #define FX_SUCCEEDED(Status) ((FX_ERR)(Status) >= 0) 704 #define FX_FAILED(Status) ((FX_ERR)(Status) < 0) 723 #if !defined(_MSC_VER) && \ 724 (_FX_CPU_ == _FX_X64_ || _FX_CPU_ == _FX_IA64_ || _FX_CPU_ == _FX_ARM64_ || \ 725 _FX_CPU_ == _FX_MIPS64_ || _FX_CPU_ == _FX_LOONGARCH64_ || _FX_CPU_ == _FX_SW64_) 746 typedef __int64 FX_INT64;
748 typedef unsigned __int64 FX_UINT64;
750 typedef long long int FX_INT64;
751 typedef unsigned long long FX_UINT64;
754 #if (_FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_) && !defined(_FX_NO_WINDOWS_) 760 #if (_FX_CPU_ == _FX_X64_ || _FX_CPU_ == _FX_IA64_ || _FX_CPU_ == _FX_ARM64_ || \ 761 _FX_CPU_ == _FX_MIPS64_ || _FX_CPU_ == _FX_LOONGARCH64_ || _FX_CPU_ == _FX_SW64_) 778 #define FX_DEFINEHANDLE(name) typedef struct _##name {FX_LPVOID pData;} * name; 780 #if defined(DEBUG) && !defined(_DEBUG) 805 #if !defined(_FX_NO_ANSIC_) 810 #define FXSYS_assert assert 819 #define ASSERT FXSYS_assert 830 #define FX_MAX(a, b) (((a) > (b)) ? (a) : (b)) 832 #define FX_MIN(a, b) (((a) < (b)) ? (a) : (b)) 835 #define FX_PI 3.1415926535897932384626433832795f 838 #if _FX_WORDSIZE_ == _FX_W64_ && _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ 839 #define _FX_CRT_MALLOC_LIMIT_ 0x7fffffffffffffffL 841 #define _FX_CRT_MALLOC_LIMIT_ 0x7fffffffL 854 #if !defined(_FX_NO_ANSIC_) 859 #define FXSYS_sprintf sprintf 865 #define FXSYS_snprintf _snprintf 866 #define FXSYS_vsnprintf _vsnprintf 868 #define FXSYS_snprintf snprintf 869 #define FXSYS_vsnprintf vsnprintf 875 #define FXSYS_vsprintf vsprintf 880 #define FXSYS_strchr strchr 885 #define FXSYS_strlen strlen 890 #define FXSYS_strncmp strncmp 895 #define FXSYS_strcmp strcmp 900 #define FXSYS_strcpy strcpy 905 #define FXSYS_strncpy strncpy 910 #define FXSYS_strstr strstr 913 int FXSYS_vsprintf(
char *buffer,
const char *format, va_list args);
916 int FXSYS_strncmp(
const char* str1,
const char* str2,
size_t len);
919 char*
FXSYS_strncpy(
char* dest,
const char* src,
size_t len);
920 char*
FXSYS_strstr(
const char *
string,
const char *strFind);
931 #if !defined(_FX_NO_ANSIC_) && !defined(__EMSCRIPTEN__) 936 #define FXSYS_FILE FILE 941 #define FXSYS_fopen fopen 946 #define FXSYS_fclose fclose 951 #define FXSYS_SEEK_END SEEK_END 956 #define FXSYS_SEEK_SET SEEK_SET 961 #define FXSYS_fseek fseek 966 #define FXSYS_ftell ftell 971 #define FXSYS_fread fread 976 #define FXSYS_fwrite fwrite 981 #define FXSYS_fprintf fprintf 986 #define FXSYS_fflush fflush 988 #define FXSYS_FILE void 991 #define FXSYS_SEEK_END 2 992 #define FXSYS_SEEK_SET 0 1002 #if _FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN32_MOBILE_ || _FX_OS_ == _FX_WIN64_ 1007 #ifdef _NATIVE_WCHAR_T_DEFINED 1008 #define FXSYS_wfopen(f, m) _wfopen((const wchar_t*)(f), (const wchar_t*)(m)) 1010 #define FXSYS_wfopen _wfopen 1025 #if _FX_OS_ != _FX_VXWORKS_ && _FX_OS_ != _FX_ANDROID_ && !defined(_FX_NO_ANSIC_) && _FX_COMPILER_ != _FX_ADS_ && _FX_COMPILER_ != _FX_RVCT_ && _FX_COMPILER_ != _FX_PACC_ && _FX_COMPILER_ != _FX_TMS470_ && _FX_COMPILER_ != _FX_MIPS_SDE_ 1026 #ifdef _NATIVE_WCHAR_T_DEFINED 1027 #define FXSYS_wcslen(str) wcslen((wchar_t*)(str)) 1028 #define FXSYS_wcscmp(str1, str2) wcscmp((wchar_t*)(str1), (wchar_t*)(str2)) 1034 #define FXSYS_wcslen wcslen 1039 #define FXSYS_wcscmp wcscmp 1047 #if _FX_OS_ != _FX_VXWORKS_ && _FX_OS_ != _FX_ANDROID_ && !defined(_FX_NO_ANSIC_) && _FX_COMPILER_ != _FX_ADS_ && _FX_COMPILER_ != _FX_RVCT_ && !(_FX_COMPILER_ == _FX_GCC_ && _FX_OS_ == _FX_SYMBIAN_) && _FX_COMPILER_ != _FX_PACC_ && _FX_COMPILER_ != _FX_TMS470_ && _FX_COMPILER_ != _FX_MIPS_SDE_ 1048 #ifdef _NATIVE_WCHAR_T_DEFINED 1049 #define FXSYS_wcschr(str, ch) (FX_LPCWSTR)wcschr((wchar_t*)(str), ch) 1050 #define FXSYS_wcsstr(str1, str2) (FX_LPCWSTR)wcsstr((wchar_t*)(str1), (wchar_t*)(str2)) 1051 #define FXSYS_wcsncmp(str1, str2, n) wcsncmp((wchar_t*)(str1), (wchar_t*)(str2), n) 1057 #define FXSYS_wcschr wcschr 1062 #define FXSYS_wcsstr wcsstr 1067 #define FXSYS_wcsncmp wcsncmp 1073 #define FXSYS_vswprintf vswprintf 1078 #if _FX_OS_ != _FX_ANDROID_ 1081 #define FXSYS_vswprintf vswprintf 1085 #if !defined(_FX_NO_ANSIC_) && _FX_COMPILER_ != _FX_TMS470_ 1090 #define FXSYS_mbstowcs mbstowcs 1095 #define FXSYS_wcstombs wcstombs 1110 #if !defined(_FX_NO_ANSIC_) 1115 #define FXSYS_memcmp memcmp 1120 #define FXSYS_memcpy memcpy 1126 #define FXSYS_memmove memmove 1131 #define FXSYS_memset memset 1136 #define FXSYS_memchr memchr 1148 #if !defined(_FX_NO_ANSIC_) 1153 #define FXSYS_qsort qsort 1155 void FXSYS_qsort(
void*,
unsigned,
unsigned,
int (*)(
const void*,
const void*));
1158 #if _FX_OS_ != _FX_WIN32_MOBILE_ && !defined(_FX_NO_ANSIC_) && _FX_OS_ != _FX_SYMBIAN_ 1163 #define FXSYS_bsearch bsearch 1166 void *
FXSYS_bsearch(
const void *key,
const void *base,
size_t num,
size_t width,
int (*compare)(
const void *,
const void *));
1169 #if (_FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN32_MOBILE_ || _FX_OS_ == _FX_WIN64_) && !defined(_FX_NO_WINDOWS_) 1176 #define FXSYS_itoa _itoa 1181 #define FXSYS_strlwr _strlwr 1186 #define FXSYS_strupr _strupr 1191 #define FXSYS_stricmp _stricmp 1193 #ifdef _NATIVE_WCHAR_T_DEFINED 1194 #define FXSYS_wcsicmp(str1, str2) _wcsicmp((wchar_t*)(str1), (wchar_t*)(str2)) 1195 #define FXSYS_WideCharToMultiByte(p1, p2, p3, p4, p5, p6, p7, p8) WideCharToMultiByte(p1, p2, (const wchar_t*)(p3), p4, p5, p6, p7, p8) 1196 #define FXSYS_MultiByteToWideChar(p1, p2, p3, p4, p5, p6) MultiByteToWideChar(p1, p2, p3, p4, (wchar_t*)(p5), p6) 1197 #define FXSYS_wcslwr(str) _wcslwr((wchar_t*)(str)) 1198 #define FXSYS_wcsupr(str) _wcsupr((wchar_t*)(str)) 1204 #define FXSYS_wcsicmp _wcsicmp 1209 #define FXSYS_WideCharToMultiByte WideCharToMultiByte 1214 #define FXSYS_MultiByteToWideChar MultiByteToWideChar 1219 #define FXSYS_wcslwr _wcslwr 1224 #define FXSYS_wcsupr _wcsupr 1227 #ifndef _FX_WINAPI_PARTITION_DESKTOP_ 1228 int FXSYS_IntersectRect(
struct FX_RECT*,
const struct FX_RECT*,
const struct FX_RECT*);
1237 #define FXSYS_GetFullPathName GetFullPathName 1242 #define FXSYS_GetModuleFileName GetModuleFileName 1247 #define FXSYS_GetACP GetACP 1250 char*
FXSYS_itoa(
int value,
char*
string,
int radix);
1253 char* buf,
int buflen,
const char* default_str,
int* pUseDefault);
1255 wchar_t* buf,
int buflen);
1262 int FXSYS_wcsicmp(
const wchar_t *string1,
const wchar_t *string2);
1360 #if _FX_OS_ == _FX_PALMOS_ && _FX_COMPILER_ == _FX_METROWERKS_ 1366 extern double __ieee754_pow(
double,
double);
1367 extern double __ieee754_sqrt(
double);
1368 extern double __fabs(
double);
1369 extern double __ieee754_atan2(
double,
double);
1370 extern double __ceil(
double);
1371 extern double __floor(
double);
1372 extern double __cos(
double);
1373 extern double __ieee754_acos(
double);
1374 extern double __sin(
double);
1375 extern double __ieee754_log(
double);
1376 extern double __ieee754_log10(
double);
1378 #define FXSYS_pow(x, y) __ieee754_pow(x, y) 1379 #define FXSYS_sqrt(x) __ieee754_sqrt(x) 1380 #define FXSYS_fabs(x) __fabs(x) 1381 #define FXSYS_atan2(x, y) __ieee754_atan2(x, y) 1382 #define FXSYS_ceil(x) __ceil(x) 1383 #define FXSYS_floor(x) __floor(x) 1384 #define FXSYS_cos(x) __cos(x) 1385 #define FXSYS_acos(x) __ieee754_acos(x) 1386 #define FXSYS_sin(x) __sin(x) 1387 #define FXSYS_log(x) __ieee754_log(x) 1388 #define FXSYS_log10(x) __ieee754_log10(x) 1395 #if _FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_ || _FX_OS_ == _FX_LINUX_DESKTOP_ 1400 #define FXSYS_pow powf 1405 #define FXSYS_sqrt sqrtf 1410 #define FXSYS_fabs fabsf 1415 #define FXSYS_atan2 atan2f 1420 #define FXSYS_ceil ceilf 1425 #define FXSYS_floor floorf 1430 #define FXSYS_cos cosf 1435 #define FXSYS_acos acosf 1440 #define FXSYS_sin sinf 1445 #define FXSYS_log logf 1450 #define FXSYS_log10 log10f 1455 #define FXSYS_fmod fmodf 1457 #define FXSYS_pow(a, b) (FX_FLOAT)pow(a, b) 1458 #define FXSYS_sqrt(a) (FX_FLOAT)sqrt(a) 1459 #define FXSYS_fabs(a) (FX_FLOAT)fabs(a) 1460 #define FXSYS_atan2(a, b) (FX_FLOAT)atan2(a, b) 1461 #define FXSYS_ceil(a) (FX_FLOAT)ceil(a) 1462 #define FXSYS_floor(a) (FX_FLOAT)floor(a) 1463 #define FXSYS_cos(a) (FX_FLOAT)cos(a) 1464 #define FXSYS_acos(a) (FX_FLOAT)acos(a) 1465 #define FXSYS_sin(a) (FX_FLOAT)sin(a) 1466 #define FXSYS_log(a) (FX_FLOAT)log(a) 1467 #define FXSYS_log10(a) (FX_FLOAT)log10(a) 1468 #define FXSYS_fmod(a, b) (FX_FLOAT)fmod(a, b) 1472 #if !defined(_FX_NO_ANSIC_) 1477 #define FXSYS_abs abs 1479 #define FXSYS_abs(a) ((a)<0?-(a):(a)) 1492 #ifdef _FX_NO_GLOBAL_ 1495 void FXSYS_SetStaticPointer1(
void*);
1497 void* FXSYS_GetStaticPointer1(
void);
1499 void FXSYS_SetStaticPointer2(
void*);
1501 void* FXSYS_GetStaticPointer2(
void);
1505 #if _FX_ENDIAN_ == _FX_BIG_ENDIAN_ 1506 #define _FX_MSB_FIRST_ 1507 #define FXDWORD_FROM_LSBFIRST(i) ( ((FX_BYTE)(i) << 24) | ((FX_BYTE)((i) >> 8) << 16) | ((FX_BYTE)((i) >> 16) << 8) | (FX_BYTE)((i) >> 24) ) 1508 #define FXDWORD_FROM_MSBFIRST(i) (i) 1510 #define _FX_LSB_FIRST_ 1511 #define FXDWORD_FROM_LSBFIRST(i) (i) 1512 #define FXDWORD_FROM_MSBFIRST(i) ( ((FX_BYTE)(i) << 24) | ((FX_BYTE)((i) >> 8) << 16) | ((FX_BYTE)((i) >> 16) << 8) | (FX_BYTE)((i) >> 24) ) 1515 #if _FX_CPU_ == _FX_X86_ || _FX_CPU_ == _FX_X64_ || _FX_CPU_ == _FX_ARM64_ || \ 1516 _FX_CPU_ == _FX_MIPS64_ || _FX_CPU_ == _FX_LOONGARCH64_ || _FX_CPU_ == _FX_SW64_ 1517 #define FXDWORD_GET_LSBFIRST(p) (*(FX_DWORD*)(p)) 1519 #define FXDWORD_GET_LSBFIRST(p) ((((FX_LPBYTE)(p))[3] << 24) | (((FX_LPBYTE)(p))[2] << 16) | (((FX_LPBYTE)(p))[1] << 8) | (((FX_LPBYTE)(p))[0])) 1522 #define FXDWORD_GET_MSBFIRST(p) ((((FX_LPBYTE)(p))[0] << 24) | (((FX_LPBYTE)(p))[1] << 16) | (((FX_LPBYTE)(p))[2] << 8) | (((FX_LPBYTE)(p))[3])) 1524 #define FXSYS_HIBYTE(word) ((FX_BYTE)((word) >> 8)) 1525 #define FXSYS_LOBYTE(word) ((FX_BYTE)(word)) 1526 #define FXSYS_HIWORD(dword) ((FX_WORD)((dword) >> 16)) 1527 #define FXSYS_LOWORD(dword) ((FX_WORD)(dword)) 1530 #define FXSYS_strtol strtol 1593 #define FXSYS_Mul(a, b) ((a) * (b)) 1595 #define FXSYS_Div(a, b) ((a) / (b)) 1597 #define FXSYS_MulDiv(a, b, c) ((a) * (b) / (c)) 1599 #define FXSYS_sqrt2(a, b) (FX_FLOAT)FXSYS_sqrt((a)*(a) + (b)*(b)) 1605 #if (_FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN32_MOBILE_ || _FX_OS_ == _FX_WIN64_) && !defined(_FX_NO_WINDOWS_) 1608 #elif _FX_OS_ == _FX_LINUX_DESKTOP_ || _FX_OS_ == _FX_LINUX_EMBEDDED_ || _FX_OS_ == _FX_MACOSX_ || _FX_OS_ == _FX_IOS_ || _FX_OS_ == _FX_ANDROID_ 1609 #include <pthread.h> 1611 #if _FX_OS_ == _FX_ANDROID_ 1614 typedef pthread_rwlock_t FX_RWLOCK;
1623 void FX_Mutex_Destroy(
FX_MUTEX* pMutex);
1625 void FX_Mutex_Lock(
FX_MUTEX* pMutex);
1626 void FX_Mutex_Unlock(
FX_MUTEX* pMutex);
1628 #define FX_CRITICAL_SECTION FX_MUTEX 1629 #define FX_InitializeCriticalSection(a) FX_Mutex_Initialize(a) 1630 #define FX_DeleteCriticalSection(a) FX_Mutex_Destroy(a) 1631 #define FX_TryEnterCriticalSection(a) FX_Mutex_TryLock(a) 1632 #define FX_EnterCriticalSection(a) FX_Mutex_Lock(a) 1633 #define FX_LeaveCriticalSection(a) FX_Mutex_Unlock(a) 1636 #if (_FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN32_MOBILE_ || _FX_OS_ == _FX_WIN64_) && !defined(_FX_NO_WINDOWS_) 1638 #elif _FX_OS_ == _FX_LINUX_DESKTOP_ || _FX_OS_==_FX_LINUX_EMBEDDED_ 1639 #ifdef _FX_SPINLOCK_USEGCCCAS_ 1642 #ifndef _CHROME_PNACL_ 1648 #elif _FX_OS_ == _FX_MACOSX_ || _FX_OS_ == _FX_IOS_ 1650 #else // android/embeded linux/other os 1661 #if _FX_OS_ == _FX_PALMOS_ && _FX_COMPILER_ == _FX_PACC_ 1662 #include <errtrycatch.h> 1663 #define setjmp ErrSetJump 1664 #define longjmp ErrLongJump 1665 #define jmp_buf ErrJumpBuf 1670 #if _FX_OS_ == _FX_MACOSX_ 1671 #include <Carbon/Carbon.h> 1672 #elif _FX_OS_ == _FX_IOS_ 1673 #include <CoreText/CoreText.h> 1674 #include <CoreGraphics/CoreGraphics.h> void * FXSYS_memset8(void *dst, FX_BYTE v, size_t size)
将缓冲区数据设置为指定值。
void * FX_LPVOID
指向任意类型的指针。
Definition: fx_system.h:660
wchar_t FX_WCHAR
编译器相关的Unicode字符(Microsoft编译器为16位,gcc为32位)。
Definition: fx_system.h:738
#define FXSYS_wcslwr
将宽字符字符串转换为小写。
Definition: fx_system.h:1219
#define FXSYS_mbstowcs
将多字节字符序列转换为相应的宽字符序列。
Definition: fx_system.h:1090
FX_LPCWSTR FXSYS_i64tow(FX_INT64 value, FX_LPWSTR str, int radix)
将整数转换为宽字符串。
#define FXSYS_fwrite
向文件写入数据。
Definition: fx_system.h:976
#define FXSYS_fprintf
向文件打印格式化数据。
Definition: fx_system.h:981
FX_LPCSTR FXSYS_i64toa(FX_INT64 value, FX_LPSTR str, int radix)
将整数转换为ANSI字符串。
#define FXSYS_wcsncmp
比较两个宽字符字符串的字符。
Definition: fx_system.h:1067
#define FXSYS_FILE
文件结构。
Definition: fx_system.h:936
void const * FX_LPCVOID
指向任意常量类型的指针。
Definition: fx_system.h:662
int FXSYS_round(FX_FLOAT f)
获取最接近的整数
#define FXSYS_strcpy
复制ANSIC字符串。
Definition: fx_system.h:900
#define FXSYS_fflush
刷新文件。
Definition: fx_system.h:986
FX_DWORD FX_UINT32
无符号32位整数。
Definition: fx_system.h:773
wchar_t const * FX_LPCWSTR
指向常量Unicode字符的指针。
Definition: fx_system.h:742
#define FXSYS_GetFullPathName
获取指定文件的完整路径和文件名。
Definition: fx_system.h:1237
#define FXSYS_strlen
获取ANSIC字符串的长度。
Definition: fx_system.h:885
#define FXSYS_wcsupr
将宽字符字符串转换为大写。
Definition: fx_system.h:1224
#define FXSYS_strncpy
复制有长度限制的ANSIC字符串。
Definition: fx_system.h:905
#define FXSYS_wcschr
在宽字符字符串中查找宽字符。
Definition: fx_system.h:1057
FX_INT32 FXSYS_memcmp32(const void *buf1, const void *buf2, size_t size)
比较两个缓冲区中的数据。
char * FX_LPSTR
指向8位Windows (ANSI) 字符的指针。
Definition: fx_system.h:709
#define FXSYS_wfopen
使用宽字符串参数打开文件。目前仅支持Windows平台。
Definition: fx_system.h:1010
#define FXSYS_memmove
将一个缓冲区移动到另一个缓冲区。如果源区域和目标区域的某些区域重叠, ::FXSYS_memmove 确保重叠区域中的原始源字节在被覆盖之前被复制。
Definition: fx_system.h:1126
CRITICAL_SECTION FX_MUTEX
互斥锁/临界区和读写锁的定义。
Definition: fx_system.h:1606
#define FXSYS_memcpy
从一个缓冲区复制到另一个缓冲区。
Definition: fx_system.h:1120
void * FX_POSITION
用于表示集合中元素位置的值。
Definition: fx_system.h:664
unsigned int FX_DWORD
32位无符号整数。
Definition: fx_system.h:727
#define FXSYS_vswprintf
使用指向参数列表的指针写入格式化输出宽字符字符串。
Definition: fx_system.h:1073
#define FXSYS_itoa
将整数转换为ANSIC字符串。
Definition: fx_system.h:1176
FX_INT64 FXSYS_atoi64(FX_LPCSTR str)
将ANSI字符串转换为整数。
#define FXSYS_strchr
在ANSIC字符串中查找字符。
Definition: fx_system.h:880
#define FXSYS_strlwr
将ANSIC字符串转换为小写。
Definition: fx_system.h:1181
int FX_INT32
32位有符号整数。
Definition: fx_system.h:689
#define FXSYS_GetModuleFileName
获取指定模块的完全限定路径。
Definition: fx_system.h:1242
void * FXSYS_memset32(void *dst, FX_INT32 v, size_t size)
将缓冲区数据设置为指定值。
#define FXSYS_memcmp
比较两个缓冲区。
Definition: fx_system.h:1115
int FX_BOOL
布尔变量(应为TRUE或FALSE)。
Definition: fx_system.h:697
unsigned short * FX_LPWORD
指向WORD的指针。
Definition: fx_system.h:685
#define FXSYS_fseek
将文件指针移动到指定位置。
Definition: fx_system.h:961
char const * FX_LPCSTR
指向常量8位Windows (ANSI) 字符的指针。
Definition: fx_system.h:711
#define FXSYS_wcslen
获取宽字符字符串的长度。
Definition: fx_system.h:1034
FX_INT64 FXSYS_wtoi64(FX_LPCWSTR str)
将宽字符串转换为整数。
signed char FX_INT8
有符号8位整数。
Definition: fx_system.h:667
#define FXSYS_wcscmp
比较宽字符字符串。
Definition: fx_system.h:1039
#define FXSYS_GetACP
检索系统的当前ANSI代码页标识符。
Definition: fx_system.h:1247
FX_INT32 FXSYS_wtoi(FX_LPCWSTR str)
将宽字符串转换为整数。
#define FXSYS_fread
从文件读取数据。
Definition: fx_system.h:971
UINT_PTR FX_UINTPTR
指针精度的无符号整型。
Definition: fx_system.h:758
#define FXSYS_qsort
执行快速排序。通用算法。
Definition: fx_system.h:1153
#define FXSYS_wcsicmp
比较两个宽字符字符串,不区分大小写。
Definition: fx_system.h:1204
void * FX_SPINLOCK
自旋锁的定义。
Definition: fx_system.h:1637
short FX_SHORT
短整数(16位)。
Definition: fx_system.h:681
#define FXSYS_fopen
打开文件。
Definition: fx_system.h:941
#define FXSYS_bsearch
对排序数组执行二分搜索。通用算法。
Definition: fx_system.h:1163
#define FXSYS_MultiByteToWideChar
将字符字符串映射为宽字符字符串。
Definition: fx_system.h:1214
unsigned char * FX_LPBYTE
指向FX_BYTE的指针。
Definition: fx_system.h:673
#define FXSYS_strstr
查找子字符串
Definition: fx_system.h:910
#define FXSYS_wcsstr
查找宽字符子字符串。
Definition: fx_system.h:1062
char FX_CHAR
8位Windows (ANSI) 字符。
Definition: fx_system.h:707
float FX_FLOAT
32位浮点数。
Definition: fx_system.h:691
#define FXSYS_assert
断言。
Definition: fx_system.h:810
unsigned short FX_UINT16
无符号16位整数。
Definition: fx_system.h:679
#define FXSYS_memchr
在内存块中搜索字节。
Definition: fx_system.h:1136
#define FXSYS_strcmp
比较ANSIC字符串。
Definition: fx_system.h:895
#define FXSYS_WideCharToMultiByte
将宽字符字符串映射为字符字符串。
Definition: fx_system.h:1209
unsigned char FX_UINT8
无符号8位整数。
Definition: fx_system.h:669
unsigned short const * FX_LPCWORD
指向WORD的指针。
Definition: fx_system.h:687
#define FXSYS_fclose
关闭文件。
Definition: fx_system.h:946
#define FXSYS_ftell
获取文件指针的当前位置。
Definition: fx_system.h:966
#define FXSYS_stricmp
比较两个ANSIC字符串,不区分大小写。
Definition: fx_system.h:1191
#define FXSYS_strncmp
比较两个ANSIC字符串的字符。
Definition: fx_system.h:890
unsigned short FX_WORD
16位无符号整数。
Definition: fx_system.h:683
short FX_INT16
有符号16位整数。
Definition: fx_system.h:677
#define FXSYS_memset
使用给定字符初始化缓冲区。
Definition: fx_system.h:1131
FX_INT32 FXSYS_atoi(FX_LPCSTR str)
将ANSI字符串转换为整数。
unsigned char const * FX_LPCBYTE
指向常量FX_BYTE的指针。
Definition: fx_system.h:675
wchar_t * FX_LPWSTR
指向Unicode字符的指针。
Definition: fx_system.h:740
unsigned int * FX_LPDWORD
指向DWORD的指针。
Definition: fx_system.h:729
#define FXSYS_sprintf
将格式化数据写入ANSIC字符串。
Definition: fx_system.h:859
#define FX_DEFINEHANDLE(name)
定义句柄类型的宏。
Definition: fx_system.h:778
#define FXSYS_wcstombs
将宽字符序列转换为相应的多字节字符序列。
Definition: fx_system.h:1095
#define FXSYS_vsprintf
使用指向参数列表的指针写入格式化输出。
Definition: fx_system.h:875
void * FXSYS_memmove32(void *dst, const void *src, size_t size)
将源缓冲区数据移动到目标缓冲区。
#define FXSYS_strupr
将ANSIC字符串转换为大写。
Definition: fx_system.h:1186
void * FXSYS_memcpy32(void *dst, const void *src, size_t size)
从源缓冲区复制数据到目标缓冲区。
FX_UINT64 FX_QWORD
无符号四字整数。
Definition: fx_system.h:775
INT_PTR FX_INTPTR
指针精度的有符号整型。
Definition: fx_system.h:756
unsigned char FX_BYTE
字节(8位)。
Definition: fx_system.h:671
int FX_ERR
错误指示器。
Definition: fx_system.h:700