
C++
zjljqlbtx
这个作者很懒,什么都没留下…
展开
-
C++中 的内存错误与泄漏
C++中 的内存错误与泄漏 内存错误类型对于程序员来说,Linux中有两种可访问的存储器 1.用户程序运行的虚拟存储空间 2.寄存器存储器 最常见的内存错误是碰到"Segmentation violation"的错误,这是内存错误产生位置的警告信息,可以通过gdb来定位.以下讨论是一些不那么明显的错误内存错误 堆内存错误Heap memory errors: 试转载 2008-10-19 11:43:00 · 619 阅读 · 0 评论 -
不要混合使用运行时库的静态版本和动态版本!!!!
不要混合使用运行时库的静态版本和动态版本!!!! 最近在开发一个项目,有比较多的dll模块,以前测试时一直没有发现问题,运行的很正常。今天要发布一个新版本了,就用Bounders Check检查了一下。乖乖,很多错误阿!全部都是: Allocation Conflict: Attempting to call global_operator_delete on 0x01566E68; poin转载 2008-10-09 23:16:00 · 657 阅读 · 0 评论 -
atoi、atol、strtod、strtol、strtoul、gcvt、ecvt、fcvt、sprintf、toascii、tolower类型转换
atof(将字符串转换成浮点型数)相关函数atoi,atol,strtod,strtol,strtoul表头文件#include 定义函数double atof(const char *nptr);函数说明atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(/0)才结束转换,并将结果返回。参数nptr字符串可包含正负号、小原创 2008-10-08 16:11:00 · 1327 阅读 · 0 评论 -
VC6做QQ对对碰外挂程序
前段时间跟以前的同事玩QQ游戏对对碰,结果输的好惨,后来在网上看到了有对对碰的外挂,但还需要注册,就考虑既然别人可以写出来,我为什么就不能写出来呢?于是花了一个下午的时间仔细研究了一下,把外挂写了出来。 其实原理很简单,只要将棋盘上面的数据保存起来,然后经过分析就可以知道移动哪里的动物,然后再通过模拟鼠标消息来点击两个位置就可以了。 1)获取棋盘数据转载 2008-10-08 09:20:00 · 828 阅读 · 0 评论 -
ATL正则表达式库
ATL正则表达式库使用ATL中,由于ATL Server的需要,需要对Client发送过来的地址、命令等复杂文字字段信息解码,而正则表达式是公认的最强大的文字解析工具,所以,ATL提供了一些用于正则表达式的库方便了我们的工作。 1、 CATLRegExp类声明:template class CAtlRegExp; 初始化: 与微软转载 2008-10-08 09:19:00 · 621 阅读 · 0 评论 -
Debug和Release之本质区别(VC++ MFC)
--------------------------------------本文主要包含如下内容:1. Debug 和 Release 编译方式的本质区别2. 哪些情况下 Release 版会出错3. 怎样“调试” Release 版的程序-------------------------------------- 关于Debug和Release之本质区别的讨论一、Deb转载 2008-10-07 17:48:00 · 560 阅读 · 0 评论 -
VC++6.0调试篇:运行时间的观察--watch窗口的技巧续
微软精心打造的VC调试器确实非常方便,再来看个watch窗口的小技巧:用作计时器 有时候可能想要知道个函数或者一段代码运行需要的粗略时间。一般是假如一些计时的处理,比如函数开始时调用GetTickCount()记录开始时间,完了在调用一边获得结束时间,一减就出来~~ 不复杂,但是确实需要动代码。实际上调试器中的watch窗口就能帮你简单的完成这个功能。很简单的代码,转载 2008-10-07 11:51:00 · 510 阅读 · 0 评论 -
浅谈VC6中Debug版本与Release版本生成的Exe的差异
用Vc6编写的程序有时候Debug版本好好的,Release版本运行就出错,很多人都遇到过这种问题。前几天又有人问起,于是找了点时间写下这篇东西。总结了一部分Debug版本和Release版本的区别,都是些个人理解,欢迎交流。 Debug版本和Release版本之所以有区别,就是在于各自的编译项不同。不同的编译项组合产生不同的代码,Debug版本的编译项屏蔽转载 2008-10-07 11:50:00 · 436 阅读 · 0 评论 -
VC++6.0调试篇:变量的观察--watch窗口的技巧
接着上篇,写一下VC6的watch窗口的一些小技巧,对于调试过程是非常有帮助的。VC6年纪已经很大了,微软好像也不再支持,但是还是有很多人在用。我本人是非常喜欢它的小巧(相对vs2003,2005),占资源少,即使这样它的调试功能仍然超级强,真是不错。 好,废话到此结束,下面贴代码来说明:#include stdio.h>#include windo转载 2008-10-07 11:49:00 · 445 阅读 · 0 评论 -
VC疑难问题汇总
error LNK2001: 无法解析的外部符号 __CrtDbgReport 项目属性——C/C++—— 代码生成——运行时库0x7c921230 处未处理的异常: 用户断点 。 选择继续n(>200)次以后可以继续 Debug版直接运行、Release版都没问题;nafxcwd.lib(appcore.obj) :转载 2008-10-08 11:17:00 · 848 阅读 · 0 评论 -
Common problems that cause LNK2019 include:
Common problems that cause LNK2019 include: The declaration of the symbol contains a spelling mistake, such that, it is not the same name as the翻译 2008-10-08 11:02:00 · 413 阅读 · 0 评论 -
实战:结合Dr.Watson系统日志和Vc6来定位多线程环境下程序异常退出的错误
当开发的软件发布以后,在客户那运行时可能会因为各种原因导致程序退出。这种情况很尴尬,很明显我们无法在客户机器上装个Visual Studio调试,所以必须有机制来收集出错的信息。软件本身的运行日志能提供部分信息,但是可能还不够。Windows系统为此提供了解决方案:Dr.Watson工具。Dr.Watson也算是一个小巧的调试器,32位的版本名字是drwtsn32.exe。可用于当系统中有转载 2008-10-07 11:33:00 · 438 阅读 · 0 评论 -
可能产生LNK2001错误的原因:
可能产生LNK2001错误的原因: 一.由于编码错误导致的LNK2001。 1.不相匹配的程序代码或模块定义(.DEF)文件能导致LNK2001。例如, 如果在C++ 源文件内声明了一变量“var1”,却试图在另一文件内以变量 “VAR1”访问该变量,将发生该错误。 2.如果使用的内联函数是在.CPP文件内定义的,而不是在头文件内定转载 2008-10-07 19:11:00 · 484 阅读 · 0 评论 -
vc++ 编译 CXX0030错误 处理方法集锦
vc++ 编译 CXX0030错误 处理方法集锦 一、1,CTypedPtrArray 改为 CArray.2,CString改为 BYTE*3,CString与数组的函数参数改为指针.原创 2008-10-07 18:11:00 · 2504 阅读 · 0 评论 -
VC++6.0调试篇:内存断点
经常有人问我关于内存断点的问题,刚才看帖又看到一个哥们问起这事。干脆就写一篇简单教程吧。 翻出了一个快排的程序。初始化了一个待排序数组,这时候如果我想看看arr[0]这个内存单元的值是何时开始变化的,那么就可以在这个内存地址直接下数据断点。打开Edit-->Breakpoints菜单,出现Breakpoints窗口,选Data叶面。内存断点需要在调试过程中使转载 2008-10-07 11:49:00 · 394 阅读 · 0 评论 -
工作手记 关于GetPrivateProfileString函数以及如何即时调试debug以及release版本的程式
工作手记 关于GetPrivateProfileString函数以及如何即时调试debug以及release版本的程式 1,GetPrivateProfileString函数。 今天在visual studio 调试程式时,发现GetPrivateProfileString读配置文件中的字符串时,不能取的正确的值,后来把GetPrivateProfileString的lpFile转载 2008-10-09 23:18:00 · 715 阅读 · 0 评论