1、
若class CNMDevCtrlProtocol : virtual public CNetComm则StartTimer编译通不过
2、ActiveX在IE下加载多个,相当于多线程,所以这时候的ActiveX不要使用全局变量,当时如果编写动态库也不要使用全局变量
3、BTN灰显或SLEEP()一段时间再恢复,其实灰显并没用,在SLEEP的这段时间,再去按这个按钮,依然可以响应
4、ActiveX在IE下总是红叉,其实360的实时保护中的系统防火墙会阻止ActiveX下载
5、数组引用
int sz[10];
void Fun(int* p, int size);
void Fun(int (&arr)[10]);
6、CYGWIN编译时注意360保险箱会降低编译效率,原因是它具有文件系统监控功能
7、疑难杂症之函数参数一致性
我们都知道,当传入的参数与函数声明的参数不一致时,编译工具会报错,所以参数一致性这一点一般人容易忽视它。
如果我们将函数指针当作参数传入(回调函数),那么在调用函数时参数不一致,编译工具也不会报错,一旦该函数被执行,则程序崩溃。
这个问题为什么难查原因有:
一、编译时不报错,运行时如果没有进行回调也不会死
二、回调函数参数变化,有时会忘记在回调时更改参数
三、回调函数的调用频率可能不高,也许程序运行几个月才调用一次,一调就死
四、程序崩溃后弹出框没有丝毫有用信息
鉴于这些问题,提醒大家注意保持函数参数一致性