api_Outinfo输出内容到控制台界面

录入时间:2020/4/24 13:16:00      最后更新:2020/5/2 22:25:53

服务端为custom.dll提供的接口

 

api_OutInfo 在服务端控制台界面输出信息
C++接口原型 void api_OutInfo(char * szFormat, ...)
szFormat 文本格式,所以printf支持的本参数都支持
... 可重复添加参数
返回值 无 void
易接口
子程序名 返回值类型 公开 备注
api_OutInfo
输出信息到服务端控制台显示
参数名 类型 参考 可空 数组 备注
szFormat 文本型
    "%s%d"
param2 整数型  
  文本的话请用取_文本指针(文本)
param3 整数型  
  同上
param4 整数型  
  同上
param5 整数型  
  同上
param6 整数型  
  同上
param7 整数型  
  同上
param8 整数型  
  同上
param9 整数型  
  同上
说明

打印信息到控制台屏幕
C++
api_OutInfo("data:%s,%d", "aaaaa", 123123)

易语言输出文本参数要写 取文本指针("asfsafd")
eg: api_OutInfo("data:%s,%d", _取文本指针("aaaaa"), 123123)

 

api_allocByTask 申请任务返回内存
C++接口原型 void* api_allocByTask(const unsigned long _taskId, int _BufSize)
_taskId 要返回数据的任务ID
_BufSize 需要返回数据的字节数,可比要返回的数据稍大,不用太精准,但一定不能小
返回值 成功返回申请到的内存指针,失败返回NULL,该内存指针归主程序管理释放
 
子程序名 返回值类型 公开 备注
api_allocByTask 整数型
专用于返回处理结果的内存申请
参数名 类型 参考 可空 数组 备注
任务ID 整数型
申请内存大小 整数型
说明 申请专用返回内存,该内存主程序管理,每个函数只可调用一次

自定义加密函数或自定义接口函数处理完数据,将要返回的数据写入该内存 写入的数据只能是文本, 结尾必须是\x00

 

api_Query 执行SQL语句,一般是update,insert,delete
C++接口原型 int api_Query(const char * v_sqlstr)
v_sqlstr SQL语句,通常是 update insert delete 之类的,语句中有中文或其它非asc字符时必须转成utf-8格式
返回值 失败返回-1,成功返回>=0,大于0表示的是该操作影响的数据行数
易接口
子程序名 返回值类型 公开 备注
api_Query 整数型
Mysql执行query语句 例如update delete insert。失败返回-1,成功返回0 或 大于0表示影响的行数
参数名 类型 参考 可空 数组 备注
SQL语句_utf8 文本型
    需要utf8格式,非utf8格式,请先ansi_utf8,如果全是ascii的半角字符无需转换utf8
说明 执行SQL语句 api_Query("update set abc=1 from table where id=1")

 

api_GetRow 执行mysql的select查询,只返回首行数据
C++接口原型 DataRow* api_GetRow(const char * v_sqlstr)
v_sqlstr SQL语句,通常是select 之类的,语句中有中文或其它非asc字符时必须转成utf-8格式
返回值 只返回首行数据,失败返回NULL,注意如果返回指针不为NULL,用完数据一定要第一时间调用 api_Recovery(指针) 释放
易接口
子程序名 返回值类型 公开 备注
api_GetRow 整数型
mysql执行select语句,只返回一条记录。无记录返回0,有记录返回的是一个1维数组的原始指针,用完该指针需调用api_Recovery释放
参数名 类型 参考 可空 数组 备注
SQL语句_utf8 文本型
    需要utf8格式,非utf8格式,请先ansi_utf8,如果全是ascii的半角字符无需转换utf8
说明
struct DataRow
{
	int eArrDimension;		//固定值1,表示一维数组,兼容易语言写法
	int cols;				//列数,也就是字段数
	char* m_data[MAX_MYSQL_FILELD_NUM];	    //保存每列的数据指针
	char* operator[](int idx) const
	{
		return m_data[idx];
	}
}

易语言直接把这个当指针绑定到数组就可以直接用数组的形式访问

C++先建立一个DataRow变量引用指针,然后用操作符[]访问即可
DataRow* p=api_GetRow("select id,name from *** where *** limit 0,1");
DataRow rs&=*p;
rs[0] rs[1] 这样访问 id和name
然后通过下标即可访问,详情请拿custom.dll源码查看

 

api_GetRows 执行mysql的select查询,可返回多行数据
C++接口原型 DataRows* api_GetRows(const char * v_sqlstr)
v_sqlstr SQL语句,通常是select 之类的,语句中有中文或其它非asc字符时必须转成utf-8格式
返回值 指针 返回多行数据指针,失败返回NULL,注意如果返回指针不为NULL,用完数据一定要第一时间调用 api_Recovery(指针) 释放
易接口
子程序名 返回值类型 公开 备注
api_GetRows 整数型
mysql执行select语句,最多能返回20条记录。无记录返回0,有记录返回的是一个2维数组的原始指针,用完该指针需调用api_Recovery释放
参数名 类型 参考 可空 数组 备注
SQL语句_utf8 文本型
    需要utf8格式,非utf8格式,请先ansi_utf8,如果全是ascii的半角字符无需转换utf8
说明
struct DataRows
{
	int eArrDimension;		//固定值2,兼容易二维数组
	int rows;				//一维,查询到的行数
	int cols;				//二维,列数,也就是字段数
	char* m_data[MAX_MYSQL_FILELD_NUM];	    //保存每行每列的数据指针,实际上是 char* m_data[rows][cols] 看[]操作符算法就知道
	char* operator[](int idx) const
	{
		return return (char* *)(m_data + cols * idy);;
	}
}

易语言直接把这个当指针绑定到数组就可以直接用数组的形式访问

C++先建立一个DataRow变量引用指针,然后用操作符[]访问即可
DataRow* p=api_GetRow("select id,name from *** where *** limit 0,1");
DataRow rs&=*p;
rs[0] rs[1] 这样访问 id和name
然后通过下标即可访问,详情请拿custom.dll源码查看

 

api_Recovery 释放mysql查询的数据指针
C++接口原型 void api_Recovery(void * p)
p api_GetRow或api_GetRows返的指针
返回值 无 void
易接口
子程序名 返回值类型 公开 备注
api_Recovery
释放api_GetRow或api_GetRows查询的指针内存
参数名 类型 参考 可空 数组 备注
指针 整数型       api_GetRow或api_GetRows返回的指针
说明 释放 api_GetRow或api_GetRows 查询占用的mysql资源,并将mysql连接放回mysql连接池

 

api_GetRsaKeyPtr 由RSA文本制造一个RSA加解密用的指针
C++接口原型 void* api_GetRsaKeyPtr(const char* _Rsa_private_PKCS1)
_Rsa_private_PKCS1 PKCS1格式的RSA私钥文本,每行尾必须用换行符
返回值 返回RSA加解密需要用到的RSA指针,该指针归主程序内部管理,无需释放(内部有链表,同一个文本返回的指针是相同的)
易接口
子程序名 返回值类型 公开 备注
api_GetRsaKeyPtr 整数型
返回rsa结构体指针
参数名 类型 参考 可空 数组 备注
_pemprvkey 文本型
     
说明
C++
char a[]="-----BEGIN RSA PRIVATE KEY-----\n\
MIIBOwIBAAJBAJzUnshQs135oE67P9r9RLFKfFxaQoJOGOLbGTiTVilKBDRyah4I\n\
fZna6cza5HAJtQIhAJJAxVS5JVkM/XApP/tjF7X8HRk+jJlrWW3QZ6/s5VvBAiB9\n\ te1QG+rQ9lylNhVe12NVxywMktutdlBquQPz+8+AMg==\n\ -----END RSA PRIVATE KEY-----"; 易 .版本 2 rsakey = “-----BEGIN RSA PRIVATE KEY-----” + 字符 (10) rsakey = rsakey + “MIIBOwIBAAJBAJzUnshQs135oE67P9r9RLFKfFxaQoJOGOLbGTiTVilKBDRyah4I” + 字符 (10) rsakey = rsakey + “fZna6cza5HAJtQIhAJJAxVS5JVkM/XApP/tjF7X8HRk+jJlrWW3QZ6/s5VvBAiB9” + 字符 (10) rsakey = rsakey + “te1QG+rQ9lylNhVe12NVxywMktutdlBquQPz+8+AMg==” + 字符 (10) rsakey = rsakey + “-----END RSA PRIVATE KEY-----”

 

api_RsaEncrypt RSA加密
C++接口原型 int api_RsaEncrypt(const void* RsaNodePtr, const char* _inBuf, const int _inCount, char * outBuf)
RsaNodePtr RSA指针,api_GetRsaKeyPtr申请到的
_inBuf 待RSA加密的文本或数据,要加密的数据长度不能大于 RSA位数/8 -4 (512位RSA可加密60字节的文本)
_inCount 待RSA加密的文本或数据长度
outBuf 加密后的输出缓存,需提前申请数据空间,加密后的数据已自动Base64_Encode处理
返回值 加密后的文本长度
易接口
子程序名 返回值类型 公开 备注
api_RsaEncrypt 整数型
RSA加密数据
参数名 类型 参考 可空 数组 备注
rsakey指针 整数型
待加密字节集 字节集
     
待加密字节集长度 整数型
加密结果存放缓存指针 整数型       需提前申请数据空间
说明 RSA标准加密, add_PKCS1_padding ->powm->base64encode

 

api_RsaDecrypt RSA解密
C++接口原型 int api_RsaDecrypt(const void* RsaNodePtr, const char* _inBuf, const int _inCount, char * outBuf)
RsaNodePtr RSA指针,api_GetRsaKeyPtr申请到的
_inBuf 待RSA解密的文本或数据
_inCount 待解密的文本或数据长度,可填0
outBuf 解密后的输出缓存,需提前申请数据空间
返回值 解密后的文本或数据长度
易接口
子程序名 返回值类型 公开 备注
api_RsaDecrypt 整数型
RSA解密数据
参数名 类型 参考 可空 数组 备注
rsakey指针 整数型
待解密字节集 字节集
     
待解密字节集长度 整数型
解密结果存放缓存指针 整数型       需提前申请数据空间
说明  

 

api_Base64Encode 标准BASE64Encode
C++接口原型 int api_Base64Encode(const char* _inBuf, const int _inCount, char* _outBuf)
_inBuf 待Base64编码的文本或数据
_inCount 待Base64编码的文本或数据长度
_outBuf Base64编码结果存放缓存,需提前申请数据空间
返回值 编码后的数据长度
易接口
子程序名 返回值类型 公开 备注
api_Base64Encode 整数型
Base64Encode
参数名 类型 参考 可空 数组 备注
待编码数据指针 整数型
待编码数据长度 整数型
编码结果存放缓存指针 整数型 需提前申请数据空间
说明 标准Base64编码

 

api_Base64Decode 标准BASE64Decode
C++接口原型 int api_Base64Decode(const char* _inBuf, const int _inCount, char* _outBuf)
_inBuf 待Base64解码的文本
_inCount 待Base64解码的文本长度,可填0
_outBuf Base64解码结果存放缓存,需提前申请数据空间
返回值 解码后的数据长度
易接口
子程序名 返回值类型 公开 备注
api_Base64Decode 整数型
Base64Decode
参数名 类型 参考 可空 数组 备注
待解码文本 文本型
     
待解码文本长度 整数型
解码结果存放缓存指针 整数型 需提前申请数据空间
说明 标准Base64解码

 

api_RC4 标准RC4算法
C++接口原型 void api_RC4(const char* _key, const void* _data, const int data_length, char* _outBuf)
_key RC4加密用到的key
_data 要RC4加密的文本或数据指针
data_length 要RC4加密的文本或数据长度
_outBuf RC4加密结果存放的缓存,需提前申请数据空间
返回值 无 void
易接口
子程序名 返回值类型 公开 备注
api_RC4
标准RC4算法
参数名 类型 参考 可空 数组 备注
_key 字节集
    key有效位中不能有字符串结尾符0,但结尾一定要是0
_原数据指针 整数型
_原数据长度 整数型
_RC4结果存放缓存指针 整数型       需提前申请数据空间
说明  

 

api_alloc 内存池:申请内存块
C++接口原型 void* api_alloc(unsigned int _size)
_size 要申请的内存大小
返回值 内存指针,该指针用完需调用api_free(指针)释放
易接口
子程序名 返回值类型 公开 备注
api_alloc 整数型
从内存池申请内存,返回申请到的内存指针
参数名 类型 参考 可空 数组 备注
申请内存大小 整数型
说明 申请内存,其实是从内存池中取出一块相应大小的内存块,该指针用完需调用api_free(指针)释放也就是放回内存池

 

api_free 内存池:释放内存块
C++接口原型 void api_free(void * _p)
_p api_alloc 申请的指针
返回值 无 void
易接口
子程序名 返回值类型 公开 备注
api_free 整数型
从内存池申请内存,返回申请到的内存指针,服务端管理该内存自动回收
参数名 类型 参考 可空 数组 备注
_ptr 整数型
说明 释放内存,其实是将内存块放回内存池

 

api_md5 标准md5算法
C++接口原型 void api_md5(const char* _in, int _len, char* _out)
_in 待取md5的文本或数据指针
_len 待取md5的文本或数据长度
_out md5输出结果 32位HEX字符串大写 ,需提前申请数据空间
返回值 无 void
易接口
子程序名 返回值类型 公开 备注
api_md5
标准RC4算法
参数名 类型 参考 可空 数组 备注
_数据 文本型
    key有效位中不能有字符串结尾符0
_数据长度 整数型
_结果存放缓存指针 整数型       需提前申请数据空间
说明  

 

api_TeaEncrypt Tea32轮加密算法
C++接口原型 int api_TeaEncrypt(const char* _in, int _inlen, const char* _key, char* _out)
_in 待加密文本或数据指针
_inlen 待加密文本或数据长度
_key 加密用的key,建议16字节字符串
_out 加密后输出的数据地址,需提前申请好空间,例如C ++ char _out[128]={0} 易取空白文本(_inlen+8)
返回值 返回加密后的数据长度, 返回值=(_inlen+7)/8 * 8
易接口
子程序名 返回值类型 公开 备注
api_TeaEncrypt 整数型
Tea加密数据
参数名 类型 参考 可空 数组 备注
待加密数据的指针 整数型
待加密数据的长度 整数型
key 文本型       建议16字节长度,超出的会截断
存放加密后数据的指针 整数型       需提前申请数据空间
说明 Tea最原始32轮算法,返回加密后的数据字节长度,_in的长度不是8的倍数,加密的数据里会在前边自动以0x00为补码,补足8字节的倍数

 

api_TeaDecrypt Tea32轮解密算法
C++接口原型 int api_TeaDecrypt(const char* _in, int _inlen, const char* _key, char* _out)
_in 待解密文本或数据指针
_inlen 待解密文本或数据长度
_key 解密用的key,建议16字节字符串,对称算法需与加密时用的key一样
_out 密后输出的数据地址,需提前申请好空间, 例如C ++ char _out[128]={0} 易取空白文本(_inlen)
返回值 返回解密后的数据长度,
易接口
子程序名 返回值类型 公开 备注
api_TeaDecrypt 整数型
Tea解密数据
参数名 类型 参考 可空 数组 备注
待解密数据的指针 整数型
待解密数据的长度 整数型
key 文本型
存放解密后数据的指针 整数型       需提前申请数据空间
说明 解密后的数据会自动去除头部的补码0x00

 


 Copyright 2008-2017 武汉市洪山区火云网络工作室 可可网络验证系统
 联系电话:027-88778177    鄂ICP备12009746号