虚拟通道没法初始化问题



症状:没法初始化虚拟通道,返回错误码6,在Cchannel.h中找到答案, #define CHANNEL_RC_BAD_CHANNEL 6

原因:
The pChannel parameter is incorrect or one of the channel names is syntactically incorrect. 
这里顺便插入初始化虚拟通道的函数,因为要解释其中的一个参数 pChannel 
typedef UINT ( VCAPITYPE *VirtualChannelInit )( LPVOID* ppInitHandle , PCHANNEL_DEF pChannel , INT channelCount , ULONG versionRequested , PCHANNEL_INIT_EVENT_FN pChannelInitEventProc );

PCHANNEL_DEF  pChannel  ,
再来看pChannel 的定义
typedef struct tagCHANNEL_DEF {
char name[CHANNEL_NAME_LEN + 1];
ULONG options; } CHANNEL_DEF,
*PCHANNEL_DEF,
**PPCHANNEL_DEF;

找到name这个参数,这里有个最大长度CHANNEL_NAME_LEN 找到这个值看看,基本上问题就解决了。
在Pchannel.h文件中找到了它的定义

#define CHANNEL_NAME_LEN             7

而我定义的虚拟通道名字是
#define CHANNELNAME "VIRCHANEL"

一个九个字符超过了最大长度7
经过跟踪调试,发现变量值为
     cd.name 0x010afdac "VIRCHANEL" char [8]
[7] 69 'E' char
丢失了一个字符


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值