![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 87
坚持奋斗的李洛克
这个作者很懒,什么都没留下…
展开
-
MFC和OpenCV 对话框依次显示文件夹内的图片
MFC和OpenCV 对话框依次显示文件夹内的图片1.新建基于对话框的MFC的项目。 2.插入Picture Control 控件,设ID为 IDC_showwindow 三个按钮 “打开图片”,“首幅图片”,“下一幅图片” 3.分别添加响应函数这里主要使用文件搜索函数_findfirst , _findnext 和结构体struct _finddata_t头文件是<io.h>long _f原创 2016-10-09 19:54:57 · 1177 阅读 · 0 评论 -
GetWindowRect和GetClientRect的区别详解
1 理论学习: MFC中,在给对话框贴图时遇到对话框的大小问题。 于是深入研究GetWindowRect和GetClientRect这两个函数,上网搜索加上自己的实验终于解决了问题。GetWindowRect和GetClientRect这两个函数,是获取逻辑坐标系中窗口或控件(其实也是窗口)大小和坐标的常用函数。 逻辑坐标,它相对的一个概念是设备坐标。是为了屏蔽掉不同设备属性差别而设置的抽象原创 2016-04-18 22:59:09 · 6368 阅读 · 0 评论 -
HTML Help WorkShop制作chm及MFC打开chm
一款应用软件,尤其专业软件,说明文档必不可少。当然对于社交娱乐软件另说。(张小龙说过通过一步步引导用户学习使用的软件不是好软件) 这里简单说明在MFC中,添加帮助菜单,打开chm帮助文件。一,创建chm文件1.安装微软的HTML help Workshop 本软件可以生成html文件,也可以生成chm文件。 2运行Htmlhelp Wo rkshop 它的工作窗口很简单,菜单栏上有五个命令,原创 2016-11-01 22:52:38 · 2235 阅读 · 0 评论 -
mfc树控件Tree Control 修改添加删除节点
vc树控件Tree Control 1.树形控件的通知消息树形控件的通知消息有很多, TVN_SELCHANGING和TVN_SELCHANGED:在用户改变了对树节点的选择时,控件会发送这两个消息。消息会附带一个指向NMTREEVIEW结构的指针,程序可从该结构中获得必要的信息。两个消息都会在该结构的itemOld成员中包含原来的选择项信息,在itemNew成员中包含新选择项的信息,在acti原创 2016-07-18 19:44:06 · 10043 阅读 · 1 评论 -
mfc combo box控件的使用及探究
1. 组合框控件简介组合框其实就是把一个编辑框和一个列表框组合到了一起,分为三种:简易(Simple)组 合框、下拉式(Dropdown)组合框和下拉列表式(Drop List)组合框。下面讲讲它们的区 别。 简易组合框中的列表框是一直显示。下拉式组合框默认不显示列表框,只有在点击了编辑框右侧的下拉箭头才会弹出列表框,可以编辑。下拉列表式组合框的编辑框是不能编辑的,只能由用户在下拉列表框中选择原创 2016-07-22 12:00:25 · 2945 阅读 · 2 评论 -
MFC程序调用MFC扩展DLL
MFC创建dll有三种方式: 1、Regular DLL with MFC statically linked:常规静态链接库 2、Regular DLL using shared MFC DLL :常规动态链接库 3、MFC Extension DLL (using shared MFC DLL):扩展的MFC DLL。 MFC扩展DLL与MFC规则DLL的相同点在于在两种DLL的原创 2016-11-15 10:25:35 · 1973 阅读 · 0 评论 -
VC6.0工程设置说明
http://blog.sina.com.cn/s/blog_4bb59dc40100fcet.html所谓:“工欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢? 先来看一下VC的处理流程,大致分为两步:编译和连接。源文件通过编译生成了.obj文件;所有.obj文件和.lib文件通过连接生成.exe文件或.dll文件。1. 打开工程设置对话框。左边的列表可以选择转载 2015-12-13 14:57:15 · 6795 阅读 · 1 评论 -
MFC 对话框中的picture control 控件显示图片
MFC读取图片一般使用自定义的DIB文件。DIB文件集中了处理图片的API函数,这样可以方便我们的图像操作。 DIB文件下载路径:DIB文件下载 MFC显示图片有几种方法:原创 2015-10-23 16:26:44 · 3596 阅读 · 0 评论 -
计算机网络面试题
一、什么是互联网OSI模型? OSI(Open System Interconnection)是指开放式系统互联参考模型。在我们的平常使用的计算机网络中存在众多体系结构, 如IBM公司的SNA(系统网络体系结构)和DEC公司的DNA(Digital Network Architecture)数字网络体系结构等。 由于体系太多,为了能够解决不同网络之间的互联问题,国际标准化组织制定了这个OS原创 2016-10-04 18:24:12 · 449 阅读 · 0 评论 -
翻转句子中单词的顺序和字符串的旋转操作 c++面试题
/* 题目描述:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。 为简单起见,标点符号和普通字母一样处理。如:”I am a student.”翻转成”student. a am I”。 ——剑指offer */ 法一:读入每一个字符串单词,将单词入栈接着将空格也入栈,运用栈先进先出的原则实现题目要求。法二:首先将整个句子按字符翻转得到“.tn原创 2016-04-09 22:44:05 · 1241 阅读 · 0 评论 -
华为机试题—在字符串中找出连续最长的数字串 c++
/*题目:在字符串中找出连续最长的数字串,并把这个串的长度返回函数原型: unsignedint Continumax(char** pOutputstr, char* intputstr)输入参数: char* intputstr 输入字符串;输出参数: char** pOutputstr: 连续最长的数字串,如果连续最长的数字串的长度为0, 应该返回空字符串;如果输原创 2016-06-28 20:15:16 · 1167 阅读 · 0 评论 -
华硕校招面试
华硕校招面试华硕校招,先进行现场线上笔试,考试内容计算机课程内容。然后通过初次筛选后,集合起来进行面试。技术岗一面是群面,技术岗要群面我是第一次听说。不过群面确实能考察出学生综合素质。而且还对于公司来说节省时间。群面主要分三部分。第一部分,挨个自我介绍,面试官提出几个要点,其实自己完全可以多拓展些,多讲一下。第二部分,我们8个人分成两组,hr出四个题。有如下: 1.公司一个项目正常时间是6到8个月原创 2016-09-13 19:49:31 · 1918 阅读 · 1 评论 -
c++面试题之打印1到最大的n位数
打印1到最大的n位数输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1,2,3,一直到最大的3位数即999. 思路:看是简单,但是需要注意数据超出类型范围,会溢出。所以较大的数如何表示,才是需要思考的问题。 进一步思路:用字符串表示大数。在字符串上模拟数字加法的解法。字符串里每个字符都是‘0’到‘9’之间的数字。因为数字最大时n位的,所以需要长度n+1的字符串。原创 2015-09-19 10:44:52 · 1014 阅读 · 0 评论 -
2017腾讯校招机试题
给一个整数,求小于整数的质数对之和等于整数的个数。比如 给定num=10,有质数对(3,7),(5,5)两个质数对满足条件。从最小的整数开始遍历,判断 i 和 num-i 两个数是不是质数。bool zhishu(int num){ if(num==2) return true; if(num%2!=0) { for(int i=3;i<原创 2016-09-11 22:35:57 · 955 阅读 · 0 评论 -
Effective C++读书笔记一
一.让自己习惯C++条款01:视C++为一个语言联邦为了更好的理解C++,我们将C++分解为四个主要次语言: C。说到底C++仍是以C为基础。区块,语句,预处理器,内置数据类型,数组,指针统统来自C。编程效率不高。 Object-Oreinted C++。这一部分是面向对象设计之古典守则在C++上的最直接实施。类,封装,继承,多态,virtual函数等等… Template C++。原创 2015-11-23 20:24:55 · 645 阅读 · 0 评论 -
华为机试题—字符串压缩 c++
/*将字符串压缩通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉*/#include <iostream>#include<string>using namespace std;void stringZip(const char *pInputStr, long lInputLen, char *pOut原创 2016-07-08 21:33:32 · 939 阅读 · 0 评论 -
华为机试题—大数相减-c++
/*题目:输入两行字符串正整数,第一行是被减数,第二行是减数,输出第一行减去第二行的结 /果。 /大数一般会超出长整型的范围,所以用字符串存储数据然后按照减法运算法则实现就成了。 /string类成员函数功能强大! */#include <iostream>#include<string>using namespace std;int compare(string &num1,strin原创 2016-07-08 20:52:15 · 980 阅读 · 0 评论 -
华为机试题—把数组排成最小的数 c++
题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 输入: 输入可能包含多个测试样例。 对于每个测试案例,输入的第一行为一个整数m (1输入的第二行包括m个正整数,其中每个正整数不超过10000000。 输出: 对应每个测试案例, 输出m个数字能原创 2016-06-02 22:41:32 · 1016 阅读 · 0 评论 -
memcpy内存重叠问题
memcpy内存重叠之前一直没有注意到内存复制函数的内存重叠问题。今天偶遇遂琢磨了一下,记之。函数简介:c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。一般避免内存重叠。没有内存重叠的情况:void *mymemcpy(void *dst,const void *src,size_t num) {原创 2016-08-06 11:54:49 · 6251 阅读 · 1 评论 -
字符串前移
问题: 翻转字符串 将一个字符串倒数m个字符移到字符串前面,其余依次右移例如:ABCDEFGHI , m=3,那么移动之后就是GHIABCDEF源码如下:void convert(char *w, int m){ assert(w); int i=0; int len=strlen(w); if(m>len) m = len; while(原创 2016-06-02 22:44:29 · 2078 阅读 · 0 评论 -
动态链接库
动态链接库简介动态链接库包含其他程序来完成工作的需要调用的函数,不能直接运行,也不能接收消息。原创 2015-12-13 15:24:51 · 707 阅读 · 0 评论 -
c++基础面试题总结
如果内容有误,请留言提出,谢谢 1.面向过程与面向对象的本质区别思考面向过程就像是一个细心的管家,事无具细的都要考虑到。而面向对象就像是个家用电器,你只需要知道他的功能,不需要知道它的工作原理。(封装性) 面向过程”是一种是事件为中心的编程思想。就是分析出解决问题所需的步骤,然后用函数把这写步骤实现,并按顺序调用。面向对象是以“对象”为中心的编程思想。而对象就是类的实例化。 简单的举个例子原创 2016-09-26 17:15:22 · 4950 阅读 · 0 评论 -
Effective c++ 读书笔记六——条款32-37 重载,重写, 重定义
学习完本章,相信会对OOP有更深的理解!首先区别下重载(overload),重写(override,也称覆盖), 重定义(redefine)一、重载(overload) 指函数名相同,但是它的参数表列个数或顺序,类型不同。但是不能靠返回类型来判断。 (1)相同的范围(在同一个作用域中) ; (2)函数名字相同; (3)参数必须不同; (4)virtual 关键字可有可无。原创 2016-01-05 17:06:22 · 762 阅读 · 0 评论 -
Effictive c++读书笔记七——条款38-40
条款38:通过复合塑模树has-a 或“根据某物实现出”复合(composition)是类型之间的一种关系,一个类型的对象包含其他类型对象便是这种关系:class Address{ …… };class PhoneNumber{ …… };class Person{public: ……private: std::string name; Address原创 2015-12-06 22:04:01 · 494 阅读 · 0 评论 -
Effective C++读书笔记八—— 条款41-44
模板与泛型编程条款41:了解隐式接口和编译期多态本节两个概念即什么是隐式接口,什么是编译期多态。面向对象编程世界总是以显示接口(expicit interfaces)和运行期多态(runtime polymorphism)解决问题。但是在templates 及泛型编程的世界,隐式接口和编译期多态更重要。隐式接口是相对于函数签名(也就是函数名称、参数类型、返回类型)所代表的显式接原创 2015-12-20 17:27:16 · 503 阅读 · 0 评论 -
scanf()函数简介
scanf()函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。在初学C语言时经常用到。但现在遇到scanf(“%d”,&n)!=EOF; 却蒙圈了。 因此百度学习,并记录下来。 scanf函数的一般形式:scanf函数的一般形式为: scanf(“格式控制字符串”, 地址表列); 其控制串由三类字符构成: 1。格式化说明符; %d原创 2016-03-08 20:32:34 · 963 阅读 · 0 评论 -
字符串复制函数小结
在C++中,提供了若干个字符串复制函数。 1、char * strcpy(char* destination,const char * source);2、char* strncpy(char* destination,const char* source,size_t num);3、void * memcpy(void* destination,const void* source,size_t原创 2016-05-10 22:55:08 · 1142 阅读 · 0 评论 -
STL vector
前言:vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。原创 2015-11-12 17:35:42 · 537 阅读 · 0 评论 -
Effective C++ 笔记目录
条款01:视C++为一个语言联邦 c++分解为四个次语言 条款02:尽量以const,enum,inline替换#define 少用预处理, 常量替换#define两点注意 条款03:尽可能使用const 详细介绍 const 条款04:确定对象被使用前已先被初始化 初始化与赋值 条款05:了解C++默默编写并调用哪些函数 编译器可以暗自为类创建默认构造函数原创 2015-12-20 21:00:17 · 882 阅读 · 0 评论 -
Effective c++读书笔记三
三.资源管理所谓资源就是,一旦用了它,将来必须还给系统。C++程序中最常使用的资源就好似动态分配内存(如果你new了,却忘了delete,会导致内存泄露),但内存只是你必须管理的众多资源之一。其它常见的有文件描述符(file descriptors)、互斥器(mutex)、图形界面中的字形和画刷。数据库连接以及网络sockets。当你不使用它们时,记得还给系统。 当你考虑到异常、函数内多重回原创 2015-10-02 17:12:06 · 388 阅读 · 0 评论 -
Effective c++学习笔记四
4 设计与声明 所谓软件设计,是“令软件做出你希望它做的事情”的步骤和做法,通常以颇为一般性的构想开始,最终变成十足的细节,以允许特殊接口的开发。 条款18:让接口容易被正确使用,不易被误用 理想上,如果客户企图使用某个接口而却没有获得他所预期的行为,这个代码不该通过编译;如果代码通过了编译,它的作为就该是客户所想要的。 欲开发一个“容易被正确使用,不容易被误用”的接口,首先必须原创 2015-11-28 22:42:56 · 573 阅读 · 0 评论 -
Effective C++读书笔记二
二构造/析构/赋值运算几乎你写的每个class都会有一或多个构造函数、一个析构函数、一个拷贝赋值操作符。如果这些函数犯错,会导致深远且令人不愉快的后果,遍及整个classes。所以确保它们行为正确是生死攸关的大事。条款05:了解C++默默编写并调用哪些函数如果你自己没声明,编译器就会为类声明(编译器版本的)一个拷贝构造函数,一个拷贝赋值操作符和一个析构函数。此外如果你没有声明任何构造原创 2015-09-30 17:19:37 · 505 阅读 · 0 评论 -
c++异常处理 try catch
C++ 异常处理 try catch catch关键字是用来定义catch block的,它后面带一个参数,用来与异常对象的数据类型进行匹配。注意catch关键字只能定义一个参数,因此每个catch block只能是一种数据类型的异常对象的错误处理模块。如果要想使一个catch block能抓获多种数据类型的异常对象的话,怎么办?C++标准中定义了一种特殊的catch用法,那就是” catch(…原创 2015-12-13 16:15:58 · 3233 阅读 · 0 评论 -
Effective C++读书笔记 五
c++中,类的创建是很困难的。一旦完成类定义和函数声明,剩下的实现就比较简单。太快定义变量可能造成效率上的拖延;过度使用转型(casts)可能导致代码变慢又难维护,又招来微妙难解的错误;返回对象“内部数据之号码牌(handls)”可能会破坏封装并留给客户虚吊号码牌;为考虑异常带来的冲击则可能导致资源泄漏和数据败坏;过度热心地inlining可能引起代码膨胀;过度耦合则可能导致让人不满意的冗长建置时间原创 2015-11-23 15:42:40 · 542 阅读 · 0 评论 -
C++中Txt文件读取和写入(方法汇总)
一、ASCII 输出 为了使用下面的方法, 你必须包含头文件 <fstream.h>(译者注:在标准C++中,已经使用取代< fstream.h>,所有的C++标准头文件都是无后缀的。)这是 <iostream.h>的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, <iostream.h> 已经被<fstream.h>包含了, 所以你不必包含所有这两个文件,转载 2015-11-03 21:48:31 · 120371 阅读 · 1 评论 -
指针和指针的引用作为参数——c++
指针和指针的引用作为参数–c++指针都清楚,存放变量地址的变量。那么指针指向的数据是可以改变,而指针本身是不可以改变的。表示为: *P; 指针的引用, 相当于指针的指针。 作为参数传递时,这样指针的数值是可以改变的 ,表示为: *&P fun(int * pA); // pA的数值在函数返回后不会变化 fun(int*& pA); // pA的数值原创 2015-09-19 21:57:50 · 4299 阅读 · 4 评论 -
宏的缺陷
在c中,保持效率的一个方法是使用宏,宏可以不要普通的函数调用代价就可使之看起来像函数调用。宏的实现是用预处理器而不是编译器。 宏的缺陷 问题一: 表达式在宏内展开,所以它们的优先级不同于所期望的优先级。例如:#define FLOOR(x,b) x>=b?0:1if(FLOOR(a&0x0f,0x07))宏将展开成:if(a&0x0f>=0x07?0:1)因为&的优先级比>=的低,所以宏原创 2015-09-28 20:14:49 · 688 阅读 · 0 评论 -
const 修饰函数参数,返回值,函数体
看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设转载 2015-06-27 16:59:20 · 31187 阅读 · 8 评论 -
C++创建对象的两种方法(C++用new和不用new创建类对象)
from:http://blog.sina.com.cn/s/blog_586b6c050100dhjg.html 在C++里,有两种方法创建对象:方法一:ClassName object(param);这样就声明了一个ClassName类型的object对象,C++会为它分配足够的存放对象所有成员的存储空间。注意:为节省存储空间,C++创建转载 2014-11-05 21:36:17 · 31850 阅读 · 2 评论 -
C/C++函数返回值问题
关于函数返回值的问题,这篇文章总结的很好,遂转载至此。http://www.samirchen.com/function-returns/1、常见栈内变量一般来说,在函数内对于存在栈上的局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错;但是如果返回的是局部变量的地址(指针)的话,就造成了野指针,程序运行会出错,因为函数只转载 2016-03-09 17:42:12 · 2321 阅读 · 0 评论