一些小小的经验

来源:互联网 发布:越过山丘 知乎 编辑:程序博客网 时间:2024/04/29 07:28

1. 定义了变量尽量赋初值,例如:
BYTE *pDataBuf;
如果这里不赋初值NULL的话,pDataBuf不一定为NULL;
应该定义 BYTE *pDataBuf = NULL。
保持一个好的习惯,定义变量时当即初始化。

2. 利用fopen打开文件时,最好是用try……catch……避免异常发生;
3. 写文件时,完成文件的写操作后一定要调用fclose,否则文件还有一部分内容保存在读写的缓冲区中;
4. wcscmp是区分大小写的。
5. 编写的服务不能启动,很可能是缺少什么dll或者dll不匹配造成的;
6. Wcslen(wchar *)所返回的并不是所占用的内存空间的大小,而只是数据的长度。
7. 结构体按字节对齐一定要统一,不要有的是对齐的,而有的却不对齐。
8. 一个.cpp文件中,如果该文件中的函数只是在内部调用,则应该限制函数的作用范围,在函数的定义时加上static修饰符。
9. VC对话框关闭时,既响应OnCancel又响应OnClose事件,所以如果关闭的时候需要释放内存等操作时,一定要防止重复,否则可能会造成释放已经释放的内存,或者是访问已经被释放的内存等错误
10.程序遇到运行时异常
Windows has triggered a breakpoint in MainD.exe. This may be due to a corruption of the heap, and indicates a bug in Agistment Utility.exe or any of the DLLs it has loaded. The output window may have more diagnostic information...
造成的原因可能为:
    [1]访问已经被释放的内存; [2]再次释放已经被释放的内存。
11. unresolved external symbol __imp__FindWindowW@8 referenced in function _wmain
这种错误通常是由于缺少对某个库的静态链接。 比如此问题,缺少对user32.lib的引用。

原创粉丝点击