随笔分类 -  C++/VC++

上一页 1 ··· 7 8 9 10 11 12 下一页
public,private,protected,internal 的作用范围
摘要:public 任何外部类都可以不受限制的存取类数据private 限定此类内部使用protected 除了类本身可以用外,任何继承此类的类都可以使用internal 表示在同一个应用程序(Application)或类库(Library)中都可以使用,不过这个我们基本上不用 阅读全文
posted @ 2012-02-14 14:03 知识天地 阅读(454) 评论(0) 推荐(0) 编辑
进程间通信方式
摘要:3.4.1共享内存在相互通信的进程之间设有一个公共内存区,一组进程向该公内存中写,另一组进程从化共内存中读,通过这种方式实现两组进程间的信息交换。这种通信模式需要解决两个问题:第一个问题是怎样提供共享内存;第二个是公共内存的互斥关系则是程序开发人员的责任。3.4.2消息机制消息机制是用于进程间通信的高级通信原语之一。进程在动身过程中,台能需要与其他的进程进行进程交换,于是进程通过某种手段发出自己的消息或接收其他进程发来的消息。这种方式类似于人们通过邮局收发信件来实现交换信息的目的。至于通过什么手段收发消息,就像人们选择平信还是航空信一样,是一种具体的消息传递机制。1、 消息缓冲通信消息缓冲通信 阅读全文
posted @ 2012-02-14 14:01 知识天地 阅读(929) 评论(0) 推荐(0) 编辑
sealed关键字的作用
摘要:sealed的中文意思是密封,故名思义,就是由它修饰的类或方法将不能被继承或是重写。 sealed关键字的作用: 在类声明中使用sealed可防止其它类继承此类;在方法声明中使用sealed修饰符可防止扩充类重写此方法。 sealed修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。 密封类: 密封类在声明中使用sealed 修饰符,这样就可以防止该类被其它类继承。如果试图将一个密封类作为其它类的基类,C#将提示出错。理所当然,密封类不能同时又是抽象类,因为抽象总是希望被.. 阅读全文
posted @ 2012-02-14 14:00 知识天地 阅读(1622) 评论(0) 推荐(0) 编辑
C++中的虚函数(virtual function)
摘要:一.简介 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public:virtual void foo() { cout << "A::foo() is called" << endl;}};class B: public A{public:virtual void foo() { cout << "B::foo() is called" << endl;}};那么,在使用的时候,我们可以:A * a = n 阅读全文
posted @ 2012-02-14 13:59 知识天地 阅读(271) 评论(0) 推荐(0) 编辑
堆和栈的区别
摘要:一般认为在c中分为这几个存储区1栈 - 有编译器自动分配释放2堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4另外还有一个专门放常量的地方。 - 程序结束释放在函数体中定义的变量通常是在栈上,用malloc, calloc, realloc等分配内存的函数分配得到的就是在堆上。在所有函数体外定义的是全局量,加了static修饰符后不管在哪里都存放在全局区(静态区),在所有函数体外定义的static变量表 阅读全文
posted @ 2012-02-13 17:29 知识天地 阅读(730) 评论(0) 推荐(0) 编辑
虚拟键值表
摘要:2006-12-21 18:42虚拟键十六进制值十进制值相应键盘或鼠标键VK_LBUTTON011鼠标左键VK_RBUTTON022鼠标右键VK_CANCEL033Ctrl-Break键VK_MBUTTON044鼠标中键VK_BACK088Backspace键VK_TAB099Tab键VK_CLEAR0C12Clear键VK_RETURN0D13Enter键VK_SHIFT1016Shift键VK_CONTROL1117Ctrl键VK_MENU1218Alt键VK_PAUSE1319Pause键VK_CAPITAL1420Caps Lock键VK_ESCAPE1B27Esc键VK_SPACE2 阅读全文
posted @ 2012-02-13 17:18 知识天地 阅读(3367) 评论(0) 推荐(1) 编辑
Unicode字符集下CString与char *转换
摘要:字号:大中小 在Visual C++.NET2005中,默认的字符集形式是Unicode,但在VC6.0等工程中,默认的字符集形式是多字节字符集(MBCS:Multi-Byte Character Set),这样导致在VC6.0中非常简单实用的各类字符操作和函数在VS2005环境下运行时会报各种各样的错误,这里总结了在Visual C++.NET2005环境中Unicode字符集下CString和char *之间相互转换的几种方法,其实也就是Unicode字符集与MBCS字符集转换。1、Unicode下CString转换为char *方法一:使用API:WideCharToMultiByte进 阅读全文
posted @ 2012-02-13 17:17 知识天地 阅读(368) 评论(0) 推荐(0) 编辑
VC编辑框(EDIT)的自动换行、自动滚屏 、到指定行数自动清空
摘要:在自动换行设置的时候,要在EDIT控件的属性中选中"multiline"的属性和Auto_HScroll、Vertical scroll。.http://blog.sina.com.cn/s/blog_41604f160100877c.html经过多次测试,总结出VC编辑框(EDIT)的自动换行与自动滚屏的方法。方法一:(当EDIT映射到一CString时)m_String = m_String + sNewString + "\r\n"//自动换行(其中m_String是EDIT筐所关联的CString对象)UpdateData(false);此法只能做到自动换 阅读全文
posted @ 2012-02-13 17:16 知识天地 阅读(3364) 评论(0) 推荐(0) 编辑
CvvImage类以及在MFC中显示IplImage图像的方法
摘要:平常使用Open CV时总是跳出一个个窗口,很难将项目进行系统集成,特别是在MFC等Windows环境中加载显示Open CV中的IplImage图像;使用Open CVhighgui.h 中定义的CvvImage类,可以很好的实现Open CV和Windows MFC显示接口;先介绍一下CvvImage类:由于CvvImage是在 highgui.h 头文件中声明的,因此如果您的程序中需要使用,则必须在开头包含此头文件#include <highgui.h>CvvImage对应CImage宏:#define CImage CvvImage注意事项:由于CImage太常见, 很容易 阅读全文
posted @ 2012-02-13 15:13 知识天地 阅读(5572) 评论(0) 推荐(0) 编辑
把vc中的类封装成dll的简单方法
摘要:如果已经写好了一个C++的类,希望把它做成dll动态链接库,这里介绍一种简单的方法。 1、制作dll 利用VC6新建工程时选择win32 dynamic-Link Library,然后添加头文件和cpp文件。假设类名为exp,添加头文件exp.h,头文件中声明类的定义,添加exp.cpp,其中是成员函数的具 体定义。与一般写类的定义不同,在exp.h中需要写成class __declspec(dllexport) exp{ ...}从而说明以后从dll要被导出的类是哪一个。这样编译完就会产生exp.dll和exp.lib两个文件。 2、dll的调用 当已经生成dll后,可以在其它程序中调用dl 阅读全文
posted @ 2012-02-13 15:13 知识天地 阅读(775) 评论(0) 推荐(0) 编辑
DIRECTSHOW在VS2005中PVOID64问题和配置问题
摘要:上次开发DirectShow还是2005年1月,整整两年,今天又重操旧业。这次在VS2005上使用DirectShow,首次编译发现出现以下错误:error C2146: syntax error : missing ';' before identifier 'PVOID64'看了很多关于这个问题的讨论,解答,无非就是改写winnt.h中的代码:原代码:typedefvoid*PVOID;typedefvoid*POINTER_64PVOID64;在这两行代码前增加:#definePOINTER_64__ptr64但这明显是下下之策,而且真正原因没人说的清楚。 阅读全文
posted @ 2012-02-13 15:01 知识天地 阅读(296) 评论(0) 推荐(0) 编辑
DSP指令一览表(转
摘要:附录6 TMS320C54x 指令系统一览表(按指令功能排列)原文:http://blog.163.com/byl545@126/blog/static/180522812008102171429535/一、算术运算指令1. 加法指令句 法表 达 式说 明字数周期ADD Smem,srcsrc=src+Smem操作数加至累加器11ADD Smem,TS,srcsrc=src+Smem<<TS操作数移位后加至累加器11ADD Smem,16,src[,dst]dst=src+Smem<<16操作数左移16位加至累加器11ADD Smem[,SHIFT],src[,dst] 阅读全文
posted @ 2012-02-13 15:00 知识天地 阅读(10856) 评论(0) 推荐(0) 编辑
ilpimage to bitmap
摘要:Iplimage To Bitmap (銀展提供)if (ipl->depth == 8){if (ipl->nChannels == 3){return gcnew System::Drawing::Bitmap(ipl->width , ipl->height , ipl->widthStep , System::Drawing::Imaging::PixelFormat::Format24bppRgb ,(System::IntPtr)ipl->imageData);}else{return gcnew System::Drawing::Bitmap( 阅读全文
posted @ 2012-02-13 14:57 知识天地 阅读(305) 评论(0) 推荐(0) 编辑
C/C++ 字符串处理函数(转载)
摘要:刚开始学C/C++时,一直对字符串处理函数一知半解,这里列举C/C++字符串处理函数,希望对初学者有一定的帮助。C:char st[100];1. 字符串长度 strlen(st);2. 字符串比较 strcmp(st1,st2); strncmp(st1,st2,n); 把st1,st2的前n个进行比较。3. 附加 strcat(st1,st2); strncat(st1,st2,n); n表示连接上st2的前n个给st1,在最后不要加'\0'。4. 替换 strcpy(st1,st2); strncpy(st1,st2,n); n表示复制st2的前n个给st1,在最后要加& 阅读全文
posted @ 2012-02-13 14:57 知识天地 阅读(2385) 评论(0) 推荐(0) 编辑
什么叫哈希表(转载)
摘要:google搜索到的头条:散列表(也叫哈希表),是根据关键码值直接进行访问的数据结构,也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 我觉得这个解释太含糊,想要整明白哈希表,那就得明白哈希表到底有什么样的优势。 数据结构中,有个时间算法复杂度O(n)的概念来衡量某种算法在时间效率上的优劣。哈希表的理想算法复杂度为O(1),也就是说利用哈希表查找某个值,系统所使用的时间在理想情况下为定值,这就是它的优势。那么哈希表是如何做到这一点的呢? 我们定义一个很大的有序数组,想要得到位于该数组第n个位置的值,它的算法复杂度为O 阅读全文
posted @ 2012-02-13 14:56 知识天地 阅读(2282) 评论(0) 推荐(0) 编辑
C++虚函数原理(转)
摘要:编译器到底做了什么实现的虚函数的晚绑定呢?我们来探个究竟。 编译器对每个包含虚函数的类创建一个表(称为V TA B L E)。在V TA B L E中,编译器放置特定类的虚函数地址。在每个带有虚函数的类 中,编译器秘密地置一指针,称为v p o i n t e r(缩写为V P T R),指向这个对象的V TA B L E。通过基类指针做虚函数调 用时(也就是做多态调用时),编译器静态地插入取得这个V P T R,并在V TA B L E表中查找函数地址的代码,这样就能调用正确的函数使晚捆绑发生。为每个类设置V TA B L E、初始化V P T R、为虚函数调用插入代码,所有这些都是自动发生 阅读全文
posted @ 2012-02-13 14:53 知识天地 阅读(390) 评论(0) 推荐(0) 编辑
C/C++获取当前系统时间
摘要:个人觉得第二种还是比较实用的,而且也是最常用的~不过当计算算法耗时的时候,不要忘记second,不能只要用Milliseconds来减,不然后出现负值,若是算法耗时太长就得用minutes啦。再不然,就hours……//方案— 优点:仅使用C标准库;缺点:只能精确到秒级#include <time.h>#include <stdio.h>int main( void ){ time_t t = time(0); char tmp[64]; strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",l 阅读全文
posted @ 2012-02-13 14:19 知识天地 阅读(131829) 评论(1) 推荐(9) 编辑
windows dos命令
摘要:http://baike.baidu.com/view/283786.htmDOS命令,是DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令、磁盘操作类命令、文件操作类命令和其它命令。目录使用技巧直接进入某盘符目录操作类命令磁盘操作类命令文件操作类命令其它命令ping命令详解shutdown命令展开编辑本段使用技巧注意 DOS命令不区分大小写,比如C盘的Program Files,在dos命令中完全可以用"program files"代替,加上英文引号是因为名称的中间有空格(即多于一个词),这一点是初学者经常忽略的。DOS特殊命令应用技巧 重复上一次输入 阅读全文
posted @ 2012-02-13 10:00 知识天地 阅读(6817) 评论(0) 推荐(3) 编辑
mfc背景图片覆盖控件问题
摘要:自己字onpaint函数里绘制了北京图片,当对话框被其他程序窗口遮挡是,所有的控件都会消失,被背景图覆盖。这个问题在网上找了很久,终于找到了答案,其实很简单。对话框属性-》clip children 设置为 true即可我用此方法成功解决了我的问题,希望对大家有所帮助 阅读全文
posted @ 2012-02-12 18:26 知识天地 阅读(4239) 评论(0) 推荐(1) 编辑
cannot convert from 'wchar_t *' to 'char *' 问题
摘要:MFC中使用unicode 会导致cstring之间的转换变的很复杂经常遇到这样的错误cannot convert from 'wchar_t *' to 'char *'强制转换成wchar_t 强制转换成 char* ,原有的字符串又会被空格隔开如果没有对unicode的特殊需求,可以在project>项目设置里 character set 选项设置成 “Not set"问题可以得到解决 阅读全文
posted @ 2012-02-12 17:28 知识天地 阅读(2809) 评论(1) 推荐(0) 编辑

上一页 1 ··· 7 8 9 10 11 12 下一页