本版版主招募中

 
标题: 这个CICS 客户端程序有什么问题没?
mopewolf
LU新生
Rank: 1



UID 29714
精华 0
积分 3
帖子 6
活跃指数 2
LU金币 2012 个
LU金条 0 个
阅读权限 10
注册 2005-2-24
 
发表于 2005-3-10 16:35  资料  个人空间  短消息  加为好友 
#include <stdlib.h>
#include <stdio.h>

#include <cics_eci.h>

ECI_PARMS EciParms;
char Server[]="SWITCH";
char UserID[]="";
char PassWd[]="";

void EciSync(char *msgbuf,int msglen);

int main(void)
{
char Name[256]="Hello From Client";
EciSync(Name,strlen(Name));
return 0;
}

void EciSync(char *msgbuf,int msglen)
{
short Rc;
char CommArea[256];


memset(CommArea,0x00,sizeof(CommArea));
memset(&EciParms,0x00,sizeof(EciParms));

EciParms.eci_version=ECI_VERSION_MAX;
EciParms.eci_call_type=ECI_SYNC;

memcpy(&EciParms.eci_system_name, Server, strlen(Server));
memcpy(&EciParms.eci_userid, UserID, strlen(UserID));
memcpy(&EciParms.eci_program_name,"SWACBS",6);
memcpy(&EciParms.eci_password,PassWd,strlen(PassWd));

EciParms.eci_commarea = msgbuf;
EciParms.eci_commarea_length = msglen;
EciParms.eci_extend_mode = ECI_NO_EXTEND;
EciParms.eci_luw_token=ECI_LUW_NEW;
EciParms.eci_timeout=0;
Rc=CICS_ExternalCall(&EciParms);
if ( Rc==ECI_NO_ERROR )
{
printf("CommArea Returned:%s",msgbuf);
}
else
printf("CICS_ExternalCall Error ![%d]\n",Rc);
}

执行程序后,总是出现CICS_ExternalCall Error ![-1]
请问,为什么,看错误代码是ECI_ERR_INVALID_DATA_LENGTH,不应该的啊

顶部
jxufe
版主
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
赌运长久


UID 29711
精华 4
积分 1430
帖子 2471
活跃指数 193
LU金币 1763 个
LU金条 0 个
阅读权限 210
注册 2005-2-24
 
发表于 2005-7-13 23:29  资料  个人空间  短消息  加为好友 
EciParms.eci_commarea = msgbuf;

这句有问题,因为msgbuf[len]中可能有串结束符'\0'最好用
memcpy(EciParms.eci_commarea,msgbuf,msglen);





梁馨,我爱你
顶部
 



当前时区 GMT+8, 现在时间是 2008-11-22 22:14
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.051828 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver