php扩展接收参数问题
来源:互联网 发布:英伟达掌机 知乎 编辑:程序博客网 时间:2024/06/04 18:35
double tmp_user_uin;
uint32_t area_id;
uint32_t type;
uint32_t begin_sec;
uint32_t begin_usec;
uint32_t num;
uint32_t game_id;
if ( zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "dlsllddddddd",&dopuin,&appid,&IP,&iplength,&PORT,&waitms,&tmp_user_uin,&area_id,&type,&begin_sec,&begin_usec,&num,&game_id ) == FAILURE )
{
sprintf(sErrMsg,"输入参数与接受参数不匹配");
add_assoc_string(return_value,"error",sErrMsg,1);
add_assoc_long(return_value,"errno",input_para_errno);
return;
}
uint64_t user_uin = (uint64_t) tmp_user_uin;
area_id = (uint32_t) area_id;
type = (uint32_t) type;
begin_sec = (uint32_t) begin_sec;
begin_usec = (uint32_t) begin_usec;
num = (uint32_t) num;
game_id = (uint32_t) game_id;
uint32_t area_id;
uint32_t type;
uint32_t begin_sec;
uint32_t begin_usec;
uint32_t num;
uint32_t game_id;
if ( zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "dlsllddddddd",&dopuin,&appid,&IP,&iplength,&PORT,&waitms,&tmp_user_uin,&area_id,&type,&begin_sec,&begin_usec,&num,&game_id ) == FAILURE )
{
sprintf(sErrMsg,"输入参数与接受参数不匹配");
add_assoc_string(return_value,"error",sErrMsg,1);
add_assoc_long(return_value,"errno",input_para_errno);
return;
}
uint64_t user_uin = (uint64_t) tmp_user_uin;
area_id = (uint32_t) area_id;
type = (uint32_t) type;
begin_sec = (uint32_t) begin_sec;
begin_usec = (uint32_t) begin_usec;
num = (uint32_t) num;
game_id = (uint32_t) game_id;
这段代码,你会发现 user_uin 会失真。拿到的uin和输入到php扩展里面的uin是不一样的。
改成下面的就ok了:
double tmp_user_uin;
uint32_t area_id;
uint32_t type;
uint32_t begin_sec;
uint32_t begin_usec;
uint32_t num;
uint32_t game_id;
if ( zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "dlslldllllll",&dopuin,&appid,&IP,&iplength,&PORT,&waitms,&tmp_user_uin,&area_id,&type,&begin_sec,&begin_usec,&num,&game_id ) == FAILURE )
{
sprintf(sErrMsg,"输入参数与接受参数不匹配");
add_assoc_string(return_value,"error",sErrMsg,1);
add_assoc_long(return_value,"errno",input_para_errno);
return;
}
uint64_t user_uin = (uint64_t) tmp_user_uin;
area_id = (uint32_t) area_id;
type = (uint32_t) type;
begin_sec = (uint32_t) begin_sec;
begin_usec = (uint32_t) begin_usec;
num = (uint32_t) num;
game_id = (uint32_t) game_id;
uint32_t area_id;
uint32_t type;
uint32_t begin_sec;
uint32_t begin_usec;
uint32_t num;
uint32_t game_id;
if ( zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "dlslldllllll",&dopuin,&appid,&IP,&iplength,&PORT,&waitms,&tmp_user_uin,&area_id,&type,&begin_sec,&begin_usec,&num,&game_id ) == FAILURE )
{
sprintf(sErrMsg,"输入参数与接受参数不匹配");
add_assoc_string(return_value,"error",sErrMsg,1);
add_assoc_long(return_value,"errno",input_para_errno);
return;
}
uint64_t user_uin = (uint64_t) tmp_user_uin;
area_id = (uint32_t) area_id;
type = (uint32_t) type;
begin_sec = (uint32_t) begin_sec;
begin_usec = (uint32_t) begin_usec;
num = (uint32_t) num;
game_id = (uint32_t) game_id;
说明:
php扩展在接受参数的时候是有参数间的影响的。
0 0
- php扩展接收参数问题
- PHP扩展开发-接收参数、返回参数
- PHP扩展开发(6):接收参数
- PHP扩展开发-05-参数接收
- PHP扩展开发(6):接收参数
- PHP扩展开发(6):接收参数
- php接收命令行参数
- [李景山php] PHP扩展开发系列教程3-接收用户参数
- 关于php接收IE地址栏参数乱码问题
- PHP中 接收命令行参数
- PHP从命令行接收参数
- php rdkafka扩展发送和接收消息
- Spring 接收参数乱码问题
- php学习笔记(一)之接收参数
- php接收来自命令行输入的参数
- php从命令行中接收参数
- PHP中 接收命令行参数(转)
- php --- get参数的传递和接收
- Java中getResourceAsStream的用法
- Spring Security详解
- qt Qlist<T*>
- Photoshop绘制扑克牌游戏UI界面教程
- quick cocos 的屏幕适配
- php扩展接收参数问题
- Oracle List Partition Table
- 每日一道算法题:a~z包括大小写与0~9组成的N个数,用最快的方式把其中重复的元素挑出来。
- UDP接收多路视频数据, 接收缓存不足了
- UVA - 1602(Polyomino的存储和判重)
- jdbc 批量增加方式 性能测试
- MYSQL外键(Foreign Key)的使用
- do{...}while(0)的意义和用法
- 招聘网站转型在即 面视网领跑行业创新