
c++
文章平均质量分 90
ykm0722
这个作者很懒,什么都没留下…
展开
-
同一个菜单,在view和mainframe两个类里面添加响应函数的区别
<br />..消息出现后。。。首先到 VIEW里找处理函数。没有得话再去DOC。。接着是MAINFRAME。 <br />再是程序类。最后是系统默认。。若还没找到处理函数 。则不处理这个消息。。<br />没区别 <br />只是在view里响应函数是view的成员函数 <br />在mainframe里响应函数好似frame的成员函数 <br /><br />可以让你的程序在view或mainframe里做你想做的动作 <br /><br />在document里响应也可以原创 2010-12-13 15:55:00 · 1350 阅读 · 0 评论 -
C++虚函数与多态
一提起C++的多态,很自然就想起了函数重载和虚函数的实现。函数重载是在编译时实现的一种多态,而运行时的一种多态可以通过虚函数来实现。具体一点的例子就是通过基类指针指向其子类的实例,然后来调用实际子类的成员函数。既然说到虚函数,那么虚函数表必然要提一下;我想用例子来加深一下对这方面的认识:[cpp] view plaincopyprint?#include using转载 2012-02-08 08:59:41 · 568 阅读 · 0 评论 -
c++ 内存存储 解决char*p, char p[]的问题
c++ 内存存储 解决char*p, char p[]的问题栈:通常用于编译期间就能确定存储大小的变量的存储区,用于在函数作用域内创建,在离开作用域后自动销毁的变量的存储区。有种说法是默认大小1M. 堆:通常用于那些在编译期间不能确定存储大小的变量的存储区。它的存储空间是不连续的。一般由malloc(或new)函数来分配内存块,并且需要用free(或delete)来释放内存转载 2011-12-16 12:33:50 · 984 阅读 · 0 评论 -
char 字符串
pStr要查找的字符串, iStrLen字符串长度C/C++ codeconst char* function(char *pStr, int iStrLen){ bool bFindStart = false; int iStart = 0; int iStop = 0; static buf[0xffff]; for (int i转载 2011-12-19 22:27:29 · 2362 阅读 · 0 评论 -
C/C++数组名与指针区别
指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针"。很幸运,我的大学老师就是其中之一。时至今日,我日复一日地进行着C/C++项目的开发,而身边还一直充满这样的程序员,他们保留着"数组名就是指针"的误解。想必这种误解的根源在于国内某著名的转载 2011-12-01 16:09:25 · 1509 阅读 · 1 评论 -
简单的信息加密解密
在互联网传输数据,安全性是一个非常重要的保证。。如何加密也成为了一个研究热点。。在C语言中,我们可以通过各种算法实现加密,以下是一个简单的加密和解密算法:加密时,将字符低四位取反,解密时,将低四位再次取反,代码如下:#include #define LEN 100 main() { char str[LEN]; int i; float x; printf("转载 2011-11-08 11:13:51 · 823 阅读 · 0 评论 -
floor函数 ceil函数 意义
函数名: floor 功 能: 返回小于或者等于指定表达式的最大整数 用 法: double floor(double x); 头文件:math.h #include stdio.h> #include int main(void) { double number = 123.54;转载 2011-11-22 13:50:19 · 1007 阅读 · 0 评论 -
测试函数指针传参
#includeusing namespace std;int fun(char*); int fun(char*s) { int num=0; int len=strlen(s);//返回14int sizelen=sizeof(s);//返回4for(int i=0;i{ num+=*s; s++;} return num;}void原创 2011-11-21 11:28:51 · 892 阅读 · 0 评论 -
测试拷贝时间
#include #include #include void cstrcpy(char *a,char *b);void qstrcpy(char * dest,const char *src);void cstrcpy(char *a,char *b){ while (*a++ = *b++);}void qstrcpy(char * d转载 2011-11-21 09:29:25 · 676 阅读 · 0 评论 -
产生不重复的随机数
#include #include using namespace std;int main(void) { int a[10]; //定义一个存放随机数的数组 int t; srand(time(0)); //选择一个随机数序列 for(int i=0;i t=rand()%10+1; //产生一个1~100的整数 int m=0; wh原创 2012-01-04 09:19:37 · 1924 阅读 · 0 评论 -
VS2008 解决方案的目录结构设置和管理
呵呵~~~~~~~~~很好的文章,转一下!VC 2008 解决方案的目录结构设置和管理一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于单元测试,还有的产出最终的应用程序执行档。除此以外,根据项目的需求,还会使用一些第三方的库。所以为解决方案设置一个合理的目录结构,不但可以使得代码管理更井井有条,项目成员之间也更容易相互配合,更重要的是转载 2012-02-14 09:15:44 · 826 阅读 · 0 评论 -
不使用对话框资源模版创建对话框
在MFC程序中使用对话框时首先在资源模版里创建对话框资源,然后DoModal()或者CReate显示出模式对话框或者非模式对话框,这样创建出的对话框移植性差,从一个工程移动到另一个工程比较麻烦。 在MFC中还有另一种创建对话框的方法:1 在内存中建立对话框资源模版DLGTEMPLATE结构体。2 使用InitModalIndirect API函数即可创建模式对话框,非模式对话框使转载 2012-08-28 09:04:28 · 3365 阅读 · 0 评论 -
CString转char,挺全的
CString转char,挺全的...1.传给未分配内存的const char* (LPCTSTR)指针. CString cstr(asdd); const char* ch = (LPCTSTR)cstr; ch指向的地址和cstr相同。但由于使用const保证ch不会修改,所以安全.2.传给未分配内存的指针. CString c转载 2012-08-20 14:15:33 · 1071 阅读 · 0 评论 -
VC/MFC中如何使用WPF?
VC/MFC中如何使用WPF?前些日子我写了一篇关于C++/CLI的东西——《有多少人在使用C++/CLI》。后来发现完全没搞头。估计是因为我本人对C++/CLI了解的还不深入。一个对某些东西还完全不了解的人却想要向别人解释这个东西,呵呵,多半情况下是完全没搞头的,不是吗? 介绍WPF的文章很多了,我也只是简单了解WPF,所以不准备对WPF做太多的介绍。大家都说WPF做界面很炫——原创 2012-07-24 16:43:20 · 2979 阅读 · 1 评论 -
char、varchar、 nchar、nvarchar之间区别与联系
char、varchar、nchar、nvarchar这四个家伙不光长得很像,它们所具有的属性也十分的相似,以至于让人感觉有种"剪不断理还乱"的感觉。其实如果了解了它们各自的特点之后,想区分它们是一件很简单的事。世界上没有完全相同的两片叶子对吧,连大自然都没办法造出完全相同的两个事物,更何况人呢对吧。好了不说废话了,言归正传,人类在发明这四个东西的时候分别赋予了它们不同的职责,下面让我们慢慢分析原创 2012-07-24 09:20:57 · 1056 阅读 · 0 评论 -
十一张图让你轻松学会用VS打包
微软的东西总是做得很完善,让人用起来很方便,同样VS的打包功能也很好使,看完下面十一张图想学不会都难!1. 在解决方案资源管理器里面右击你的解决方案2.“添加”——>"新建项目"3.“其他项目类型”——>"安装和部署"——>"Visual Studio Installer"——>"安装项目"——>"确定"4原创 2012-07-24 09:35:21 · 1147 阅读 · 0 评论 -
#ifndef到底什么意思
以下文件在"os_cpu.h"中。#ifndef __OS_CPU_H__#define __OS_CPU_H__ /*中间有许多定义啦声明啦!;;*/#endif /*__OS_CPU_H__*/这样,在编译阶段(ifndef是在编译阶段起作用滴!)假设有两个文件同时include了这个文件(os_cpu.h),这两个文件如果一个先编译了,那么__OS_CPU_H__原创 2012-07-12 09:10:39 · 1782 阅读 · 0 评论 -
fatal error C1900: Il mismatch between 'P1' version '20080116' and 'P2' version '20070207'
http://zengwu3915.blog.163.com/blog/static/2783489720105691622542/ 使用VS2008,debug成功,但Release时会报fatal error C1900的link错误:1>------ Build started: Project: game_client, Configuration: Release Win32 -转载 2012-07-11 18:07:02 · 9726 阅读 · 4 评论 -
时域和频域的关系
时域和频域的关系最近在上数字图像处理,时域和频域的概念我没有直观的概念,搜索一下,归纳如下: 1.最简单的解释频域就是频率域,平常我们用的是时域,是和时间有关的,这里只和频率有关,是时间域的倒数。时域中,X轴是时间,频域中是频率。频域分析就是分析它的频率特性!2. 图像处理中: 空间域,频域,变换域,压缩域等概念!只是说要将图像变换到另一种域中,然转载 2012-05-18 08:58:34 · 6561 阅读 · 0 评论 -
C++ 引用参数 深入分析
把参数声明成引用,实际上改变了缺省的按值传递参数的传递机制,在按值传递时,函数操纵的是实参的本地拷贝。 一、引用参数的三种常见用法:1.需要改变实参的值,比如swap()。参数是引用时,函数接收的是实参的左值而不是值的拷贝。这意味着函数知道实参在内存中的位置,因而能够改变它的值或取它的地址。2.向主调函数返回额外的结果。如下例:/***转载 2011-11-21 09:15:05 · 703 阅读 · 0 评论 -
memset ,memcpy 和strcpy 的根本区别?
这次在工作上分别遇到过strcpy、memset、memcpy,也在网络上看到过一些关于三者区别的文章,罗列大概内容如下:strcpy()来自C语言,在C++里得以保留。首先,要指明的是,C++里strcpy()里接受的参数是C-串,并非string,更不可能是其他类型的数据。它表示一个字串的内容拷贝到另一个字串。拷贝会在源字串里第一个'\0'时停止拷贝.strcpy(目标字串,源字串);转载 2011-11-21 09:02:27 · 1163 阅读 · 0 评论 -
bit与Byte区别
Bit意为“位”或“比特”,是计算机运算的基础;Byte意为“字节”,是计算机文件大小的基本计算单位; 说到U**2.0标准接口传输速率。许多人都将“480Mbps”误解为480兆/秒。其实,这是错误的,事实上“480Mbps”应为“480兆比特/秒”或“480兆位/秒”,转载 2011-07-25 09:52:05 · 724 阅读 · 0 评论 -
vc常见问题108问-很有资料价值
1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.转载 2011-07-06 16:13:11 · 751 阅读 · 0 评论 -
创建一个Win32应用程序的步骤
1.编写WinMain函数2.设计窗口类(WNDCLASS)3.注册窗口类4.创建窗口5.显示并更新窗口6.编写消息循环7.编写窗口过程函数。原创 2011-07-06 10:26:52 · 633 阅读 · 0 评论 -
MSDN 索引 应用程序错误hh.exe
注册三个组件即可regsvr32 hhctrl.ocx regsvr32 itss.dll regsvr32 itircl.dll原创 2011-07-06 09:34:17 · 1399 阅读 · 1 评论 -
fstream的使用方法介绍
在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器( 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout2、析取器(>>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从转载 2011-06-13 17:21:00 · 452 阅读 · 0 评论 -
VC之CString,wchar_t,int,string,char*之间的转换
<br />CString 转 wchar_t<br />CString path = "asdf";<br />wchar_t wstr[256] = path.AllocSysString();<br />或者:<br />wchar_t wcstring[256];<br />MultiByteToWideChar(CP_ACP,0,path,-1,wcstring,256);<br />wchar_t转CString<br />WideCharToMultiByte(CP_ACP,0,wcstrin原创 2011-03-29 16:25:00 · 785 阅读 · 0 评论 -
使用CMutex类实行线程同步
<br />#include <windows.h> //包含头文件<br />#include <stdio.h><br />#include <afxmt.h><br />DWORD WINAPI myfun1( //声明线程函数<br /> LPVOID lpParameter <br />);<br />DWORD WINAPI myfun2(<br /> LPVOID lpParameter <br />);<br />CMutex hmutex(NULL,原创 2010-12-28 16:10:00 · 1564 阅读 · 0 评论 -
头文件string与string.h的区别
头文件string与string.h的区别 在C++中,#include与#include的区别,前者要使用更新的编译器(其实大部分编译器多比较前卫了,出了有些搞嵌入式的用变态的编译器)。喔,原来iostream是C++的头文件,iostream.h是C的头文件,即标准的C++头转载 2011-07-25 10:12:41 · 640 阅读 · 0 评论 -
C++string详解
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不转载 2011-07-25 10:13:54 · 2185 阅读 · 0 评论 -
读取文件的版本号,例如dll文件
BOOL GetAppVersion( char*LibName, WORD*MajorVersion, WORD*MinorVersion, WORD*BuildNumber, WORD*RevisionNumber ){ DWORD dwHandle, dwLen; UINT BufLen; LPTSTR lpData; VS_FIXEDFILEINFO *转载 2011-11-20 13:15:13 · 1929 阅读 · 0 评论 -
vs2005-vs2008 设置断点无效的问题
以前在调试程序时设置断点后总是会产生无效的问题,以前没有深究过,这几天在调DShow的程序时,发现好多的断点都无法设置,所以很难看见程序的具体执行,很苦恼,于上上网苦找,仔细研究,解决办法:工具-> 选项->调试->常规中有个选项,要求源文件与原始版本完全一致,vs2008和VS2005默认的是选中的,取消就OK!转载 2011-11-17 16:52:18 · 2039 阅读 · 2 评论 -
c++指针和引用的使用浅谈
c++指针和引用的使用浅谈 C语言的精华和灵魂是“指针”,但运用的时候却比较容易出错。c++又引入了“引用”的概念,好多人不理解它们之间的区别,本人将结合自己的使用经验,给出一些编程的实例,简单阐述它们之间的区别。一。普通变量的存储方式在没介绍转载 2011-08-08 09:14:18 · 551 阅读 · 0 评论 -
各种排序算法的比较
各种排序算法的比较1.稳定性比较插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的选择排序、希尔排序、快速排序、堆排序是不稳定的2.时间复杂性比较插入排序、冒泡排序、选择排序的时间复杂性为O(n2)其它非线形排序的时间复杂性为O(nlog2n)线形排序的时间复杂性转载 2011-07-19 13:50:19 · 832 阅读 · 0 评论 -
MFC中OnDraw与OnPaint的区别
OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能.当视图变得无效转载 2011-07-15 09:25:15 · 647 阅读 · 0 评论 -
MFC自绘控件学习总结
正题:首先感谢大家对第一帖的支持,应一些网友烈要求下面我在添加关于上一贴的一些补充和说明(老鸟可以无视)这一贴是实战+理论不知道第一帖的先看第一帖:1).补充个高级可重载函数PreSubclassWindow(),我的理解是允许用户在子类化之前再做一额外些处理 ,这个重载函数也是转载 2011-07-15 09:35:24 · 2043 阅读 · 1 评论 -
C++ STL学习
STL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点STL算法作为模板函数提供。为了和其他组件相区别,在本书中转载 2011-07-25 13:58:29 · 569 阅读 · 0 评论 -
同步和异步区别 阻塞和非阻塞
一、同步~异步~阻塞~非阻塞 同步(Synchronous)和异步(Asynchronous)的概念本来来自通信领域:首先是通信的同步,主要是指客户端在发送请求后,必须得在服务端有回应后才发送下一个请求,所以这个时候的所有请求将会在服务端得到同步;其次是通信的异步,指客户端在发送请求后,不必等待服务端的回应就可以发送下一个请求,这样对于所有的请求动作来说将会在服务端得到异步,这条请求原创 2012-10-17 13:18:40 · 1066 阅读 · 0 评论