📄 csconfig.h
字号:
/*** Sybase Open Client/Server ** Confidential Property of Sybase, Inc.** Copyright Sybase, Inc. 1992, 1996** All rights reserved*//***** History:**** date name BTS# Descrition** ======= ======= ======= ===============================================** Creation** 21Jul95 Bie Tie 72147 VMS does not allows line continuation.***/#ifndef __CSCONFIG_H__#define __CSCONFIG_H__/*** This file will try to hide any interface differences found on various** platform/compiler combinations. Any datatype or define that is** dependant on a particular platform/compiler should have its definition** here.*//********************************************************************************* Function interface definitions.*******************************************************************************//*** Define the scoping rules that will be used in all libraries. These defines** exist to support different compiler-specific keywords describing the** calling convention of a C function.**** CS_PUBLIC Interface define for functions which are called** outside of a library or DLL.**** CS_INTERNAL Interface define for functions which are only called** within a library or DLL.**** CS_VARARGS Interface define for functions with variable argument** lists which are called outside of a library or DLL.**** CS_STATIC Interface define for functions which are only called** within a C module.*//*** We need to check to value of some compiler #defined macros** but some compilers will give warnings for trying to use the** value of a macro which has not been defined -- to avoid these** warnings we define 'SYB' versions of the macros we need here*/#if defined(_MSC_VER)#define SYB_MSC_VER _MSC_VER#else /* _MSC_VER */#define SYB_MSC_VER 0#endif /* _MSC_VER */#if defined(__STDC__)#define SYB__STDC__ 1#else /* __STDC__ */#define SYB__STDC__ 0#endif /* __STDC__ */#if defined(_CPROTO_)/*** The _CPROTO_ ifdef allows users to have the cproto tool generate** prototype definitions that include the scoping rules. We typedef all of** the interface defines to allow the cproto tool to preserve the names** (instead of replacing them with the defined values).*/typedef void CS_PUBLIC;typedef void CS_INTERNAL;typedef void CS_VARARGS;typedef void CS_STATIC;#else /* defined(_CPROTO_) */#if (_M_ALPHA)/*** Defines for Windows ALPHA NT calling conventions.*/#define CS_PUBLIC #define CS_INTERNAL CS_PUBLIC#define CS_VARARGS #define CS_STATIC static#else /* _M_ALPHA *//*** The user needs to define "WIN3" in order to insure that the calling** convention supported by Window 3.1 is used instead of the Windows NT** convention.*/#if defined(WIN3)/*** Defines for Windows 3.1 calling convention*/#if defined(NO_EXPORT)#define CS_PUBLIC _loadds _far _pascal#define CS_VARARGS _loadds _far _cdecl#else#define CS_PUBLIC __export _far _pascal#define CS_VARARGS __export _far _cdecl#endif#define CS_INTERNAL _far _pascal#define CS_STATIC static#else /* WIN3 */#if ((SYB_MSC_VER >= 800) || defined(__BORLANDC__))/*** Defines for Windows NT calling conventions.*/#define CS_PUBLIC __stdcall#define CS_INTERNAL CS_PUBLIC#define CS_VARARGS __stdcall#define CS_STATIC static#else /* ((SYB_MSC_VER >= 800) || defined(__BORLANDC__)) *//*** Default defines for all other platform/compilers.*/#define CS_PUBLIC #define CS_INTERNAL #define CS_VARARGS#define CS_STATIC static#endif /* ((SYB_MSC_VER >= 800) || defined(__BORLANDC__) || defined(__WATCOMC__)) */#endif /* WIN3 */#endif /* _M_ALPHA */#endif /* defined(_CPROTO_) *//*** Define wrappers to insure that all function prototypes defined in the** Open Client and Open Server header files have the correct C function** linkage when used with C++ compilers.*/#if defined(__cplusplus)#define CS_START_EXTERN_C extern "C" {#define CS_END_EXTERN_C }#else#define CS_START_EXTERN_C #define CS_END_EXTERN_C #endif /* defined(__cplusplus) *//*** PROTOTYPE macro which either produces the prototype or creates any** empty argument list.**** Usage:** storage_class type scope name PROTOTYPE((param_decl));**** Example:** extern CS_RETCODE CS_PUBLIC cs_foo PROTOTYPE((CS_INT arg1, ...));**** The predefined name __STDC__ is assumed to be defined as 1 for compilers** that support ANSI C. Any compilers that don't do this, but need prototypes,** should define "CS_FORCE_PROTOTYPES".*/#ifndef PROTOTYPE/*** Currently, Microsoft defines __STDC__ to 0, but we want to use** prototypes.*/#if (SYB_MSC_VER >= 800) || defined(__BORLANDC__)#define CS_FORCE_PROTOTYPES 1#endif /* (SYB_MSC_VER >= 800) || defined(__BORLANDC__) */ #if defined(__OS2__) || defined(IBM370)#define CS_FORCE_PROTOTYPES 1#endif /* defined(__OS2__) || defined(IBM370) *//* Mac compilers need prototypes */#if defined(applec) || defined(__MWERKS__) || defined(THINK_C)#ifndef CS_FORCE_PROTOTYPES#define CS_FORCE_PROTOTYPES 1#endif #endif /* defined(applec) || defined(__MWERKS__) || defined(THINK_C) */#if (SYB__STDC__) || defined(__cplusplus) || defined(CS_FORCE_PROTOTYPES)# define PROTOTYPE(s) s#else# define PROTOTYPE(s) ()#endif#endif /* PROTOTYPE *//*** Define whether the compiler supports the "const" keyword.*/#if (SYB__STDC__) || defined(__cplusplus)# define CS_CONST const#else# define CS_CONST#endif/*** Define CS_ELLIPSE. It is used in function pointer prototypes where** the arguments aren't known. Win3 uses ,... for CS_ELLIPSE, too.*/#define CS_ELLIPSE , .../********************************************************************************* Datatype definitions.*******************************************************************************//*** Certain Sybase C datatypes must be defined as 4 bytes in size. The** following insures that all platforms (including 64 bit machines) use** the correct C native types.*/#if defined( __alpha) || defined(SYB_LP64) || defined(_AIX)typedef int CS_INT;typedef int CS_RETCODE;typedef int CS_BOOL;typedef unsigned int CS_UINT;#elsetypedef long CS_INT;typedef long CS_RETCODE;typedef long CS_BOOL;typedef unsigned long CS_UINT;#endif/*** The vax C compiler cannot deal with typedef void. But, we want to** maintain a typedef for most platforms so things like prototype** generation work.*/#if defined(VMS) && defined(VAXC)#define CS_VOID void#define CS_THRDRES void #elsetypedef void CS_VOID;typedef void CS_THRDRES;#endif /* defined(VMS) && defined(VAXC) *//*** Macintosh Think C compiler has special type for 8 byte floats.*/#if defined(THINK_C)typedef short double CS_FLOAT; /* 8 byte float type */#elsetypedef double CS_FLOAT; /* 8 byte float type */#endif /* defined(THINK_C) *//*** Define the number of bits that a CS_BYTE can hold.*/#define CS_BITS_PER_BYTE 8/* ** Default CS_THRDID is CS_INT. Other defines go in csport.h*/#endif /* __CSCONFIG_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -