![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++/MFC
文章平均质量分 76
sky1415
这个作者很懒,什么都没留下…
展开
-
数组和List对象之间的互转
在编写Java程序中,经常要用的一个转换就是数组和List对象之间的互转 你还有其他方法吗?贴出来吧 标签: 数组 List代码片段(3)[代码] 数组->List (StringArrayTest.java)view sourceprint?01import java.util.Array转载 2012-12-07 17:31:15 · 241 阅读 · 0 评论 -
内存映射文件
一 内存映射文件用法 前面已经提到:内存映射文件是拿文件直接当作系统的内存使用,那么它主要 的用途是什么呢?主要有以下两点: 1. 直接用内存映射文件来访问磁盘上的数据文件,无需再进行文件 的I/0操作. 2. 用来在多个进程之间共享数据.进程间共享数据有很多种方法,比如 发送消息WM_COPYDATA,匿名管道等等,但他们的低层都毫无例外 的使用到了Mapping File.然而因转载 2010-05-07 15:25:00 · 512 阅读 · 0 评论 -
Socket编程!
介绍 Socket 编程让你沮丧吗?从man pages中很难得到有用的信息吗?你想跟上时代去编Internet相关的程序,但是为你在调用 connect() 前的bind() 的结构而不知所措?等等… 好在我已经将这些事完成了,我将和所有人共享我的知识了。如果你了解 C 语言并想穿过网络编程的沼泽,那么你来对地方了。读者对象 这个文档是一个指南,而不是参考书。如果你刚开始 so转载 2010-04-23 13:32:00 · 401 阅读 · 0 评论 -
sscanf用法!
scanf中一种很少见但很有用的转换字符:[...]和[ ^...]。#includeint main() { char strings[100]; scanf("%[1234567890]",strings); printf("%s",strings);return 0; } 运行,输入:1234werew后,结果是:1234。通过运行可以发现它的作用是:如果输入的字符属于方括号内字符串中某个字转载 2010-04-23 13:30:00 · 364 阅读 · 0 评论 -
调用方式 __stdcall __cdecl __fastcall
__stdcall: _stdcall 调用约定相当于16位动态库中经常使用的PASCAL调用约定。在32位的VC++5.0中PASCAL调用约定不再被支持(实际上它已被定义为 __stdcall。除了__pascal外,__fortran和__syscall也不被支持),取而代之的是__stdcall调用约定。两者实质上是一致的,即函数的参数自右向左通过栈传递,被调用的函数在返转载 2010-04-20 11:03:00 · 175 阅读 · 0 评论 -
BK4503 : minor error in .SBR file
可以通过取消RTTI机制达到,解决方法如下:You can use one of the following two methods: •Method 1 1.On the Project menu, click Settings.2.In the Project Settings dialog box, click the C/C+原创 2010-04-20 10:57:00 · 668 阅读 · 0 评论 -
VC6.0查看C/C++对应的汇编代码方法!
原来是在Project Settings里,C++选项卡里面选择文件列表(Listing file type),列表文件类型选择Assembly with Source code,然后全部重建一次工程,会在Debug目录下生成一个.asm文件,即为需要的汇编输出文件原创 2010-01-11 11:51:00 · 1389 阅读 · 0 评论 -
回文数算法!
问题: 将所有回文数从小到大排列,求第N个回文数。 一个正数如果顺着和反过来都是一样的(如13431,反过来也是13431),就称为回文数。约束: 回文数不能以0开头。 最小回文数是1。 思路: 许多朋友(包括我自己)一开始就思考使用循环:从1开始,判断该数是否是回文数,然后用一 个计数器记下回文数,一直到计数器得到N,返回第N个原创 2010-01-08 13:59:00 · 6574 阅读 · 3 评论 -
如何在C++中动态分配二维数组
这个问题应该是我以前在CSDN蹭分时回答次数比较多的一个问题了,我的回答一般是三种方法:(1)用vector的vector,(2)先分配一个指针 数组,然后让里面每一个指针再指向一个数组,这个做法的好处是访问数组元素时比较直观,可以用a[x][y]这样的写法,缺点是它相当于C#中的一个锯齿 数组,内存空间不连续。(3)直接分配一个x*y大小的一维数组,这样保证空间是连续的,但访问数组元素不直观。对转载 2009-06-29 09:37:00 · 174 阅读 · 0 评论 -
软件特征功能测试过程分析
软件功能特征测试是国际化软件测试最先开始并且贯穿于整个软件开发过程的测试类型,目的是从软件的各个侧面进行质量保证,确保软件的特征功能符合软件的设计需求和功能规格说明。在执行特征功能测试前,应该对国际化软件提供的软件特征功能以及这些功能的重要性进行风险分析,以便确定测试过程中的测试成本。1、测试输入国际化软件的特征功能测试的输入内容包括: 软件功能规格说明; 软件需求; 软件的性能目标;转载 2010-05-07 15:45:00 · 191 阅读 · 0 评论 -
如何调试MFC中的内存泄漏
首先,应该是MFC报告我们发现内存泄漏。注意:要多运行几次,以确定输出的内容不变,特别是{}之间的数值,不能变,否则下面的方法就不好用了。 我们来看看:F:/CodeSample/Test/TestPipe/LeakTest/MainFrm.cpp(54) : {86} normal block at 0x00422E80, 10 bytes long. Data: 1F 1F转载 2010-05-07 16:34:00 · 263 阅读 · 0 评论 -
内存映射文件
vc 内存映射文件---《WINDOWS核心编程》17章学习笔记windows下如果要对一个磁盘文件指定部分进行修改有如下【三种方法】:【方法一】打开文件,把file指针移动到指定位置,写入数据; 【方法二】打开文件,读文件指定部分内容到内存buf,在buf中查找,修改,最后回写入文件;【方法三】内存映射文件,此方法同时考虑到了以上2种方式,即直接操作文件+在内存中操作文件转载 2010-05-14 08:59:00 · 499 阅读 · 0 评论 -
windows核心编程笔记
http://blog.csdn.net/Mobidogs/archive/2007/01/17/1486177.aspx转载 2010-05-14 08:44:00 · 200 阅读 · 0 评论 -
使用XML的场合
在很多研讨会和培训班上我遇到过许多人,他们还不明白为什么要使用XML也不知道如何在他们的应用中使用XML。一些来自诸如Gartner公司的报告建议说,商业公司不能再做局外人了,不能对XML置之不理。如果你还不清楚XML到底有什么好处的话,你并不是唯一的人。我决定把与人们和媒体关于XML话题的交谈整理成文,列出XML在应用中的五个最令人喜爱的用法。尽管这些并不能包含XML的所有潜在应用,至少是些转载 2010-05-11 06:24:00 · 192 阅读 · 0 评论 -
操作xml的代码
向xml中添加一节点: XmlDocument doc = new XmlDocument(); doc.Load(MapPath("db//db.xml")); XmlNode node = doc.CreateElement("Item"); XmlAttribute xmlattr = doc.CreateAttribute("UserN转载 2010-05-11 06:19:00 · 254 阅读 · 0 评论 -
遍历注册表
1 HKEY regOldHKey; 2 3 //Open Register Key 4 if(::RegOpenKeyEx(HKEY_CURRENT_USER,"Software//OKI//CCons33//UNITTYPE",0,KEY_ALL_ACCESS,®OldHKey)==ERROR_SUCCESS) 5<img id="Codehi转载 2010-05-11 06:13:00 · 1136 阅读 · 0 评论 -
收藏Blog
http://www.360doc.com/content/05/0919/14/494_13310.shtmlhttp://blog.csdn.net/gudesheng/archive/2008/03.aspx原创 2010-05-07 16:06:00 · 289 阅读 · 0 评论 -
使用PageHeap.EXE或GFlags.EXE检查内存越界错误
Article last modified on 2002-6-3----------------------------------------------------------------The information in this article applies to:- Microsoft Visual C++, 32-bit Editions, versio转载 2010-05-07 16:02:00 · 804 阅读 · 0 评论 -
对一个文件使用内存映射文件
Demo: 1:创建或打开一个文件内核对象: // Open the file for reading and writing. HANDLE hFile = CreateFile(pszPathname, GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); //转载 2010-05-07 15:15:00 · 193 阅读 · 0 评论 -
如何在VC的release编译中使用断点调试!
我们在使用VC的时候,肯定都很喜欢VC在Debug下面强大调试功能,但有时候不可避免的会遇到这样的问题:在Debug环境下运行很好的程序在Release运行有问题。所以如果有办法在Release环境下实现断点调试,常常可大大节省在Release版本中找存在问题的时间。你只需要按以下设置,你就可以实现在Release版本中的断点调试。就这么简单!!!不过,有很多时候这样设置的Rele转载 2009-07-01 14:44:00 · 217 阅读 · 0 评论 -
Effective C/C++编程
1.1 版权和版本的声明版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有:(1)版权信息。(2)文件名称,标识符,摘要。(3)当前版本号,作者/修改者,完成日期。(4)版本历史信息。 /** Copyright (c)* All rights reserved.* * 文件名称:filename.h* 文件标识:见配置管理计划书* 摘 要:简要描述本文件的内容*转载 2009-06-24 13:36:00 · 672 阅读 · 0 评论 -
引用
2. 什么是“引用”?申明和使用“引用”要注意哪些问题? 答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,转载 2009-06-24 13:23:00 · 118 阅读 · 0 评论 -
为BCG界面库的记忆特性所晕倒
为BCG界面库的记忆特性所晕倒同事使用BCGControlBarPro处理界面,今天在修改菜单资源时却发生一件很奇怪的事情:无论怎么修改,程序运行后始终显示的还是改动以前的菜单,多次清空临时文件、生成文件以及重新编译也无济于事。同事为此折腾了一个上午,郁闷得不行。我用UltraEdit搜索了一下整个工程,并没有发现以前的字符串资源,因此排除了是编译器的问题。不是编译器的问题,那么就只能原创 2009-07-21 13:14:00 · 952 阅读 · 0 评论 -
SetTimer
SetTimer函数的用法 1 )用WM_TIMER来设置定时器 先请看SetTimer这个API函数的原型 UINT_PTR SetTimer( HWND hWnd, // 窗口句柄 UINT_PTR nIDEvent, // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器 UINT uElapse, // 时间间隔,单位为毫秒 TIMER原创 2009-07-21 10:02:00 · 1536 阅读 · 0 评论 -
MP3文件格式解析
1, MP3简介 MP3是今天一种常见的音乐格式,但恐怕除了工作要求之外,有兴趣对此进行研究的人恐怕不多。所以,当我打算做MP3解码方面的工作时,在找资料时也颇费了一番周折,同时也觉得很有趣。所以想在这里分享一下自己的心得,做一个总结性的介绍。这样有兴趣的同志也可以对此有一个大概了解,尽快入门。MP3是MPEG-1 Audio Layer 3的简称,是当今比较流行的一种数字音频编码和有损压缩格转载 2009-07-20 14:36:00 · 135 阅读 · 0 评论 -
最常见的20种VC++编译错误信息
1、fatal error C1010: unexpected end of file while looking for precompiled header directive。寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h") 2、fatal error C1083: Cannot open include file: R…….h:原创 2009-07-20 15:57:00 · 181 阅读 · 0 评论 -
经典编程:DLL地狱及其解决方案
本文将要介绍DLL的向后兼容性问题,也就是著名的“DLL Hell”问题。首先我会列出自己的研究结果,其中包括其它一些研究者的成果。在本文的最后,我还将给出“DLL Hell”问题的一个解决方案。 介绍 我曾经接受过一个任务,去解决一个DLL版本更新的问题————某个公司给用户提供了一套SDK,这个SDK是由一系列DLL组成的;DLL中导出了很多类,用户使用这些类(直接使用或派生新的子原创 2009-07-20 15:43:00 · 176 阅读 · 0 评论 -
UNICODE与ANSI的区别!
到底什么是ANSI,什么是UNICODE呢?其实这是两种不同的编码方式标准,ANSI中的字符采用8bit,而UNICODE中的字符采用16bit。8bit的ANSI编码只能表示256种字符,表示26个英文字母是绰绰有余的,但是表示汉字,韩国语,日语等有着成千上万个字符的非西方字符肯定就不够了,正是如此才引入了UNICODE标准。 在软件开发中,特别是使用C语言的一些有关字符串处理的原创 2009-04-29 21:34:00 · 4090 阅读 · 1 评论 -
PostMessage与SendMessage的区别
PostMessage 只是把消息放入队列,不管其他程序是否处理都返回,然后继续执行 ;而 SendMessage 必须等待其他程序处理消息后才返回,继续执行。 PostMessage 的返回值表示 PostMessage 函数执行是否正确 ;而 SendMessage 的返回值表示其他程序处理消息后的返回值。 使用这两个发送消息函数的最重要的是要看你的程序是否要对消息的滞后性关注否 ,PostM原创 2009-04-27 16:23:00 · 383 阅读 · 0 评论 -
C++ Const关键字修饰变量、成员函数!
看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书原创 2009-08-03 15:47:00 · 2209 阅读 · 4 评论 -
vc6.0快捷键设置和配色方案
很多人都在使用VC6,无论是学习C++还是做Windows的应用开发,合适的快捷键设置和颜色配置都是非常有帮助的。【为什么要使用快捷键?】用过Ctrl+C和Ctrl+V?那它是不是比点鼠标方便很多呢?……用VC6写代码的时候如果能够完全抛弃鼠标,coding的效率可以有相当大的提高(而且这也并不难做到)。不过想要达成这个目标,需要好好研究下它的快捷键;【配置颜色有必要么?】应该说,很有必要。合原创 2009-08-10 10:26:00 · 3672 阅读 · 1 评论 -
C++产生随机数函数
double AverageRandom(double min,double max){ int minInteger = (int)(min*10000); int maxInteger = (int)(max*10000); int randInteger = rand()*rand(); int diffInteger = maxInteger - minInteger; int resu原创 2009-06-24 12:41:00 · 226 阅读 · 0 评论 -
内存分配
1.从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 2.在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 3.从堆上分配,亦称动态内存分配。程序在运行的时候用ma转载 2009-06-24 13:33:00 · 151 阅读 · 0 评论 -
fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾的解决办法
VC++项目中如果包含了.c文件或一般C++类的.cpp文件,编译时经常会碰到“fatal error C1010: unexpected end of file”的错误,VC6种的解决方法:菜单--〉项目--〉设置...,出现“项目设置”对话框,左边展开项目,在“源文件”中找到出错的文件,然后在右边选择“C/C++”属性页,在Category下拉框中选择“Precompiled Header原创 2009-08-28 13:36:00 · 3170 阅读 · 2 评论 -
malloc函数
首先提出一个问题,如果使用malloc申请分配内存的时候,如果传入的字节长度为0,会出现一个什么样的情况?函数会出错吗?如果不会出错,那么又会返回一个什么样的值?是NULL吗? 刚刚遇到这个问题,我也很疑惑,于是作了个简单的例子作测试:在VC6.0中测试#include #include #include int main(){char *ptr;if ((ptr = (char转载 2009-06-24 13:17:00 · 159 阅读 · 0 评论 -
C/C++中的随机数函数
C++中的随机数函数C++中产生随机数种子对于初学者一直都很困惑.大家知道,在C中有专门的srand(N)函数可以轻松实现这一功能,然而在C++中则要复杂一些.下面是笔者学习的一点心得,希望对大家能有所帮助.(这里我们依然要借助C标准库中的rand()函数) 函数说明: int rand();原创 2009-06-24 09:44:00 · 1608 阅读 · 3 评论 -
不用API函数,获得毫秒级的系统时间!
#include #include #include void main( void ) { struct _timeb timebuffer; char *timeline; _ftime( &timebuffer ); timeline = ctime( & ( timeb原创 2009-06-19 15:37:00 · 424 阅读 · 0 评论 -
CSemaphore实现线程同步例子
加库:#include 申明全局:UINT SemaphoreThread1(LPVOID pParam);UINT SemaphoreThread2(LPVOID pParam);UINT SemaphoreThread3(LPVOID pParam);CSemaphore m_Semaphore(2, 2, NULL);int g_sharedata = 0;原创 2009-08-18 11:13:00 · 308 阅读 · 0 评论 -
解决VC6.0无法识别CSemaphore类!
加库:#include原创 2009-08-18 11:14:00 · 199 阅读 · 0 评论 -
如何调试MFC中的内存泄漏
如何调试MFC中的内存泄漏 最近好像常常看到有人问如何调试内存泄漏的问题,于是我写下本文,抛砖引玉…… 首先,应该是MFC报告我们发现内存泄漏。注意:要多运行几次,以确定输出的内容不变,特别是{}之间的数值,不能变,否则下面的方法就不好用了。 我们来看看:F:/CodeSample/Test/TestPipe/LeakTest/MainF转载 2009-04-27 11:53:00 · 178 阅读 · 0 评论