C++
cwjjamk
C/C ,PDF文档技术
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
malloc 内存分配失败很可能的一种原因
堆破坏程序退出后 vs输出栏提示:HEAP[mutool.exe]: HEAP: Free Heap block 1eb3e8 modified at 1eb410 after it was freedWindows 已在 mutool.exe 中触发一个断点。其原因可能是堆被损坏,这说明 mutool.exe 中或它所加载的任何 DLL 中有 Bug。这样原创 2013-07-04 19:26:17 · 1909 阅读 · 0 评论 -
c++实现查看文件被占用功能
方法一:修改句柄访问权限 所有被占用的文件通常都可以用读属性(FILE_READ_ATTRIBUTES)打开,这样就可以读取文件的属性,取得它的大小,枚举NTSF stream,但遗憾的是,ReadFile就不能成功调用了。打开文件时各种访问属性的区别在哪里呢?显然,打开文件时,系统会记录访问属性,之后会用 这个属性与请求的访问作比较。如果找到了系统保存这个属性的位转载 2013-08-09 16:04:19 · 6830 阅读 · 0 评论 -
open和fopen的区别
open和fopen的区别:1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存 “缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大转载 2013-08-05 14:18:41 · 721 阅读 · 0 评论 -
vs2010调试技巧
VS2010中的调试技巧跳到当前光标处(Ctrl+F10) 我经常看到人们为了到达目标代码位置,而在程序中早早设定了断点,然后反复地按F10/F11,一步步走到目标代码处。当程序员的确需要仔细观察每一步的状态变化时, F10/F11是合理的选择。然而多数情况下,人们只想快速到达他们真正关心的代码处,这时候F10/F11就不是最佳选择了。 这时,你应该利用“跳到当前光标处”这个功转载 2013-07-28 22:39:00 · 746 阅读 · 0 评论 -
MFC面试题
MFC面试题 1. 什么是预编译 何时需要预编译:1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。 2. char * const p;char const * pconst char *p 上述三个有什么区别?char *转载 2013-07-28 22:40:28 · 2162 阅读 · 1 评论 -
高级C++面试的一些题目
一、进程唯一实例化 实现 有哪些方法1进程匹配 2进程互斥CreateMutex(Assembly.GetEntryAssembly().FullName); 3运行标志4共享dll设置标志http://blog.youkuaiyun.com/hczhiyue/article/details/6785773二、dll 共享数据http://blog.youkuaiyun.com/h原创 2013-07-28 19:23:22 · 3991 阅读 · 0 评论 -
进程数据存储区
一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量转载 2013-07-28 22:20:21 · 1415 阅读 · 0 评论 -
c++常用代码
0. 编译C++程序时,编译器自动定义了一个预处理名字__cplusplus,而编译标准C时,自动定义名字__STDC__。另外几个比较有用的预定义名字是__LINE__(文件的当前编译行数),__FILE__(当前被编译的文件名字),__DATE__(编译日期)和__TIME__(编译时间)。1. C库头文件的C++名字总是以字母C开头,后面去掉后缀.h的C名字,如在C转载 2013-07-28 22:34:48 · 1309 阅读 · 0 评论 -
线程同步的一些方法
信号量、Event、互斥变量mutex、临界区一、信号量#include #include #define MAX_SEM_COUNT 6 #define THREADCOUNT 12 HANDLE ghSemaphore; DWORD WINAPI ThreadProc( LPVOID ); void main() { HAND原创 2013-07-28 22:16:53 · 791 阅读 · 0 评论 -
std::stringstream 取代 sprintf
#include #include using namespace std;void main(int /*argc*/, char* /*argv*/[]){ char temp[256]; sprintf_s(temp,"%d",10); //有了sstream就可以去掉上面的写法了。 std::stringstream stream;原创 2013-07-31 16:25:23 · 1092 阅读 · 0 评论 -
内存泄露分析
1)_CrtSetBreakAlloc(109)2)占坑,后面再叙。。。原创 2013-07-28 19:34:20 · 568 阅读 · 0 评论 -
内存越界 莫名其名的crash
在写一些文件数据访问时,经常会用到内存拷贝的方法,特别是加上一些加解密算法处理后,程序的逻辑变得复杂,代码之中往往就漏掉了一些被忽视的逻辑处理,使得计算结果无法控制,把数据拷贝到申请的内存之外。这下麻烦了,你有不觉得程序有错,有时候调试运行却不出错,而在程序直接启动时才出现错误,错误无法定位。好了啰嗦这么多,说明我被这个搞的多惨了。这下可能就是你的程序出现了你认为不可能的错误了,静下心来,仔细原创 2013-07-04 19:33:30 · 749 阅读 · 0 评论 -
QT的qmake 通过pro文件生成vs工程
在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下:1. 注释从“#”开始,到这一行结束。2.模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = appA> app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被原创 2013-08-29 13:03:07 · 2995 阅读 · 0 评论
分享