EBS多路电话网关调试

一:自己的代码真是写的太菜了,多路电话网关大部分都是别人的代码,自己就写了一点点;  写的基本都没有对的,创建了一个信号量,信号量错了; 写了一个函数,函数分支没有写对,添加了处理menuid的情况,数据存错位置了; 编码能力是在是太差了;
二: 要养成好的习惯,多分支的情况,写的时候一定要注意;写完了要测试下;每个分支都要考虑到;
三: 写一个函数,一个功能用到新的技术,要明白为什么要这样写,每个函数是什么意思。
HANDLE CreateSemaphore(
    LPSECURITY_ATTRIBUTESlpSemaphoreAttributes, // SD
    LONGlInitialCount, // initial count
    LONGlMaximumCount, // maximum count
    LPCTSTRlpName// object name
);
功能:创建一个信号量
参数一: 指定一个SECURITY_ATTRIBUTES结构,或传递零值(将参数声明为ByVal As Long,并传递零值)——表示采用不允许继承的默认描述符。该参数定义了 信号量 的安全特性
参数二: 设置信号量的初始计数
参数三: 设置信号量的最大计数
参数四: 指定信号量对象的名称  (最后一个信号量如果去了名称,不论你多少个线程创建,都会指向同一个信号量)
             所以叫同名信号量;使用时一定要注意,就是这错误浪费了别人一天帮我调试

四: 在别人的功能之上添加东西的时候不要简单的copy,你要看清楚每部分的意思,不然到时候写的看着相同,实际不同;调试起来麻烦就大了
分机挂断功能将来电号码存在一个结构体里面,我添加了一个在menu处的挂断;复制了上面代码,谁知道取到的信息都是存在一个很复杂的结构体里,但是确实不同的位置; 最后导致取不到结果;调试了很久;

五:变量和函数名起的一定要看着就懂意思,不要用数字等去表示特殊含义; 比如 int type = 1;//表示来电,你这样别人完全就看不懂
分支的功能要单一,不要有多种混淆的意思;比如if(EXT_TO_MENU){}//这里就处理来电转语音菜单,不要去处理分机转语音菜单;
分机转语音菜单就得拿出来单独处理,这样使得结构更清晰;

六:在程序执行准确的 关键位置,和程序执行错误的 每一个位置,添加输出代码是非常非常非常重要的;这样大大简化了你调试的工作;
但是输出要醒目,知道是哪个函数,哪部分功能,不然就没有意义了;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值