WSTP 接口3

程序库现已全面支持 Unicode 字符编码形式 UTF-8、UTF-16 和 UTF-32. 使用下述新的 API 函数把 Unicode 字符放入一个链接或从一个链接获取 Unicode 字符.
Wolfram 符号传递协议(Wolfram Symbolic Transfer Protocol -WSTP)程序库头文件 wstp.h 不再包含,例如,由 MACINTOSH_WSTPOS2_WSTP 定义的废弃平台支持部分. MACINTOSH_WSTP 定义参照的是 Mac OS 9 或更早版本. DARWIN_WSTP 包含所有针对 Mac OS X 的特定平台定义.
对常见的 C 类型的特殊备用名称已从 API 中去除. WSTP 头文件 wstp.h 仍然包含了这些类型的 API 函数版本,与接口2和更老的程序结合使用.
以前的 WSTP 类型
C 类型
uchar_ct
unsigned char
ucharp_ct
unsigned char *
ucharpp_ct
unsigned char **
ucharppp_ct
unsigned char ***
ushort_ct
unsigned short
ushortp_ct
unsigned short *
ushortpp_ct
unsigned short **
ushortppp_ct
unsigned short ***
uint_ct
unsigned int
uintp_ct
unsigned int *
uintpp_ct
unsigned int **
int_ct
int
voidp_ct
void *
voidpp_ct
void **
charp_ct
char *
charpp_ct
char **
charppp_ct
char ***
long_ct
long
longp_ct
long *
longpp_ct
long **
long_st
long
longp_st
long *
longpp_st
long **
ulong_ct
unsigned long
ulongp_ct
unsigned long *
kushortp_ct
const unsigned short *
kushortpp_ct
const unsigned short **
kuintp_ct
const unsigned int *
kuintpp_ct
const unsigned int **
kucharp_ct
const unsigned char *
kucharpp_ct
const unsigned char **
kcharp_ct
const char *
kcharpp_ct
const char **
kvoidp_ct
const void *
使用 WSSetAllocParameter() 传递给程序库的内存分配/释放函数现在是线程安全的.
先前采用 WSParametersPointer 类型作为参量或返回 WSParametersPointer 类型的 API 函数,现在采用或返回 char * 类型.
先前采用 mlapi_result 类型作为参量或返回 mlapi_result 类型的 API 函数,现在采用或返回 int 类型.
先前采用 mlapi_error 类型作为参量或返回 mlapi_error 类型的 API 函数,现在采用或返回 int 类型.
先前采用 mlapi_token 类型作为参量或返回 mlapi_token 类型的 API 函数,现在采用或返回 int 类型.
先前采用 mlapi_packet 类型作为参量或返回 mlapi_packet 类型的 API 函数,现在采用或返回 int 类型.
先前采用 WSPointer 类型作为参量或返回 WSPointer 类型的 API 函数,现在采用或返回 void *.
先前采用 long * 作为错误变量的 WSOpen* 函数,现在采用 int *.
头文件 wstp.h 现在包含多个有关 Unicode 字符编码形式的新的错误定义.
错误代码
释义
WSEPDATABAD
在给定字符编码中,WSTP 遇到无效字符数据
WSEPSCONVERT
不能转换给定字符编码为 WSTP 编码
WSEGSCONVERT
不能转换 WSTP 编码为要求的字符编码
WSPutMessage()WSGetMessage() 现在分别使用类型 intint *,而不是 dev_messagedev_message * 类型.
对于表达式索引,WSSeekMark()WSSeekToMark() 使用类型 int,而非类型 long.
以下表格中的函数对于某些参量曾经采用 long 类型;现在使用 int.
WSGetRawData()
WSGetRawArgCount()
WSRawBytesToGet()
WSExpressionsToGet()
WSTakeLast()
WSPutComposite()
WSGetReal() 现在是一个实际的 API 函数,而不是 WSGetDouble()#define 别名. WSGetReal() 仍然具有与 WSGetDouble() 一样的功能.
WSActivate() 现在是一个实际的 API 函数,而不是 WSConnect()#define 别名. WSActivate() 仍然具有与 WSConnect()一样的功能.
下面列出的第一列中的函数现已废弃不用. 新的程序应该使用第二列中所列出的具有替代功能的函数.
WSCheckFunctionWithArg()
WSGetInteger64() for 64-bit integers or WSGetInteger32() for 32-bit integers
WSGetLongDouble()
WSGetShortIntegerArrayData()
WSGetInteger16ArrayData()
WSGetIntegerArrayData()
WSGetInteger32ArrayData()
WSGetLongIntegerArrayData()
WSGetInteger64ArrayData() for 64-bit integers or WSGetInteger32ArrayData() for 32-bit integers
WSGetFloatArrayData()
WSGetReal32ArrayData()
WSGetDoubleArrayData()
WSGetReal64ArrayData()
WSGetLongDoubleArrayData()
WSGetReal128ArrayData()
WSGetShortIntegerArray()
WSGetLongIntegerArray()
WSGetInteger64Array() for 64-bit integers or WSGetInteger32Array() for 32-bit integers
WSGetFloatArray()
WSGetDoubleArray()
WSGetLongDoubleArray()
WSDisownShortIntegerArray()
WSDisownIntegerArray ()
WSDisownLongIntegerArray()
WSReleaseInteger64Array() for 64-bit integers or WSReleaseInteger32Array() for 32-bit integers
WSDisownFloatArray()
WSDisownDoubleArray()
WSDisownLongDoubleArray()
WSDisownIntegerList ()
WSDisownRealList ()
WSPutInteger64() for 64-bit integers or WSPutInteger32() for 32-bit integers
WSPutLongDouble()
WSPutShortIntegerArrayData()
WSPutInteger16ArrayData()
WSPutIntegerArrayData()
WSPutInteger32ArrayData()
WSPutLongIntegerArrayData()
WSPutInteger64ArrayData() for 64-bit integers or WSPutInteger32ArrayData() for 32-bit integers
WSPutFloatArrayData()
WSPutReal32ArrayData()
WSPutDoubleArrayData()
WSPutReal64ArrayData()
WSPutLongDoubleArrayData()
WSPutReal128ArrayData()
WSPutShortIntegerArray()
WSPutIntegerArray()
WSPutLongIntegerArray()
WSPutInteger64Array() for 64-bit integers or WSPutInteger32Array() for 32-bit integers
WSPutFloatArray()
WSPutDoubleArray()
WSPutLongDoubleArray()
WSGetUnicodeSymbol()
WSPutUnicodeSymbol()
WSPut16BitCharacters()
WSPutUCS2Characters()
WSDisownUnicodeString ()
WSDisownUnicodeSymbol()
接口3更改了接听的链接模式和链接的链接模式的默认链接协议. 默认情况下, WSTP 程序库会在所有平台上创建接听链接模式和链接的链接模式的 "SharedMemory(共享内存)" 链接.