Visual Studio
写的都是自己在编程过程中遇到的一些问题,写出来希望能帮到有需要的人,谢谢!
LingLong_roar
多年机械师之身在校内,却着程序员之衣进社会;
有着前端之心,却行后端之事。
展开
-
openCV 需要显示的图片太大超出了屏幕范围
()图片太大,imshow时超出屏幕范围,可以尝试在显示的时候将图片先同一缩放至固定值,然后显示Mat inputImg,outputImg;cv::resize(inputImg,outputImg,cv::Size(1280,720)); //Size(1280,720)缩放后的图片尺寸()将显示图片的窗口移动到屏幕中央cv::moveWindow("photos",192,168); //"photos"窗口名称,(192,168)移动的距离()销毁显示图片的窗口cv::d原创 2020-11-26 18:24:31 · 8168 阅读 · 6 评论 -
VS2010 MFC+openCV2.4.9 显示一个文件夹下的所有图片
直接上代码:前面一部分是选择一个包含图片的文件夹,后面一部分是遍历此文件夹,显示所有的图片#include <opencv2/opencv.hpp> //包含头文件#include <algorithm> //必需加这个头文件using namespace cv; //使用命名空间cv,下面的cv::line等的前缀可以不写void CphotoProcessDlg::OnBnClickedButton1(){ // TODO: 在此添加控件通知处理程原创 2020-11-25 21:59:59 · 426 阅读 · 0 评论 -
VS2013 由Unicode字符集切换为多字节字符集后编译报错
原文链接:VS2013多字节工程问题今天在使用VS2013由Unicode字符集切换为多字节字符集后编译报如下错误:------已启动全部重新生成:项目:Server,配置:ReleaseWin32------ 1>C:\ProgramFiles(x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(369,5):errorMSB8031:BuildinganMFCprojec...转载 2020-11-25 19:45:40 · 903 阅读 · 0 评论 -
[MFC]选择目录对话框和选择文件对话框
选择目录对话框//选择目录按钮void CDcPackerDlg::OnBnClickedDecgen() { char szPath[MAX_PATH]; //存放选择的目录路径 CString str; ZeroMemory(szPath, sizeof(szPath)); BROWSEINFO bi; bi.hwndOwner = m_hWnd; bi.pidlRoot = NULL; bi.转载 2020-11-08 19:55:08 · 522 阅读 · 0 评论 -
学习openCV(1)-VS2010配置openCV2.4.9
转载由@浅墨_毛星云出品的本系列文章,转载请注明出处。 文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨) 微博:http://weibo.com/u/1723155442 邮箱:[email protected] 知乎:http://www.zhihu.com/people/ma...转载 2018-05-14 10:39:02 · 334 阅读 · 0 评论 -
VS2010 MFC添加菜单
(1)在自己的工程资源视图目录下【添加资源】,新建一个【Menu】(2)在自己的对话框的【属性】->【Menu】选项下选择自己刚新建的Menu(3)为刚才新建的菜单的一些选项【添加事件处理程序】,然后就可以写入一些自己的程序...原创 2020-10-28 23:11:27 · 955 阅读 · 0 评论 -
C++ 友元类
友元(1)是C++提供的一种破坏数据封装和数据隐藏的机制(2)通过将一个模块声明为另一个模块的友元,一个模块能引用到另一个模块中本是被隐藏的信息(3)可以使用友元函数和友元类(4)为了确保数据的完整性,及数据封装与隐藏的原则,建议尽量不使用或少使用友元最近使用友元类的一个方向就是做UT/IT(单元测试,集成测试),因为需要自己设定一些数据的值,可能被测目标函数会用到一些私有或全局变量,如果需要对这些数据的值进行改变,要么就是将私有程序类型改为共有类型,这样就好修改被测目标文件,此时,更好的方式就原创 2020-10-21 23:02:33 · 1183 阅读 · 0 评论 -
C++ 智能指针
今天看了一下智能指针的用法,发现了一些问题:1.为什么fun()函数的数据传不出来,而fun1()的可以传出来?2.为什么不能用pA = &A;的方式给pA赋值了?#include <iostream>#include <string.h>#include <memory>void fun(std::shared_ptr<int> pB){ int A = 10; std::shared_ptr<int> pA (原创 2020-09-16 00:05:26 · 88 阅读 · 0 评论 -
结构体嵌结构体的初始化
今天写代码,首先声明一个结构体指针,结构体中嵌入的还有结构体,然后需要赋初值进行初始化,当时竟然懵的写下了如下被注释掉的初始化的代码,回来了自己用自己的电脑一写就明白了自己的沙雕行为。#include <iostream>using namespace std;struct man{ int chineseMan; int englishMan; int usaMan;};struct woman{ int chineseWoman; int englishWo原创 2020-09-08 00:26:15 · 1052 阅读 · 0 评论 -
使用控制台程序调用电脑上的其他运行程序
1.通过搜索各种博客文章,发现可以通过WinExec,ShellExecute,system,CreateProcess四种方法实现,具体的实现方法如下2.使用这些函数貌似需要用到kernal32.lib这个环境,我是在此下载的:Kernel32.Lib,下载完成后直接放在置于vs的安装目录的vc\lib\目录下,不需要再在项目属性里面进行设置。3.每个函数的具体使用方法及参数说明,还没有去深究,可以自己去查查。#include <iostream>//#include <原创 2020-09-02 23:58:33 · 846 阅读 · 0 评论 -
结构体变量的初始化
#include <iostream>#include "fun.h"using namespace std;struct people{ int *people_p; int man; int woman;};int main(){ struct people peo1; //struct people peo1 = {NULL,0,0}; //ok //peo1 = {NULL,0,0}; //error memset(&peo1,0,s...原创 2020-08-03 23:59:11 · 835 阅读 · 0 评论 -
VS2010 MFC实现对数据库MySQL插入数据
打开Navicat for MySql软件,新建一个数据库learnMySQL,在数据库中新建一张表格stuInf,这个表格包括三列: id, name, stuID,gene,id数据类型为int,其他都是 varchar, 长度都是255 。如图:1.数据库服务器的连接设置2.新建数据库,新建一个表,属性设置如下,然后保存3.新建一个 MFC 的基于对话框的项目。项目名称为:learnMySQL,界面效果如下图:IDD_LEARNMYSQL_DIALOG界面为项目的...原创 2020-06-12 13:50:24 · 1781 阅读 · 2 评论 -
MFC 输入时不显示隐藏输入内容
想要达到的效果如下:鼠标右键点击想要设置的文本编辑框,选择属性(Properties),再选择“Password”,选中“true”。原创 2020-06-05 16:42:44 · 637 阅读 · 0 评论 -
MFC 将指定的按钮控件与enter键相关联
鼠标右键点击想要设置的button,选择属性(Properties),再选择Styles,选中Default Button。原创 2020-06-05 16:36:33 · 631 阅读 · 0 评论 -
C 语言的isalpha,isdigit,ispunct函数
C++从C语言继承了一个与字符相关的、非常方便的函数软件包,它可以简化诸如确定字符是否为大写字母、数字、标点符号等工作,这些函数的原型是在头文件cctype(老式的风格中为ctype.h)中定义的。例如,如果ch是一个字母,则isalpha(ch)函数返回一个非零值,否则返回0。同样如果ch是标点符号(如逗号或句号),函数ispunct(ch)则返回true。(这些函数的返回类型为int,而不是bool,但通常bool转换让您能够将它们视为bool类型。)示例如下:#include <i原创 2020-06-04 22:43:00 · 931 阅读 · 0 评论 -
函数strstr():从源字符串中找到目标字符串出现的个数
问题:给出一个源字符串str及一个目标字符串,找出啊目标字符串在源字符串str中出现的次数。eg:str = "111abcd222abcd333abcd44";目标字符串:"abcd"输出:4解题思路:C语言提供了一个函数strstr(),可以实现这样的功能直接上代码:#include <iostream>#include <stdlib.h...原创 2020-05-06 13:24:59 · 957 阅读 · 0 评论 -
C++ return和exit的区别
return 结束当前函数exit 结束整个进程直接上代码:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string>using namespace std;void fun(){ printf("in fun\n");...原创 2020-05-05 09:38:54 · 212 阅读 · 0 评论 -
函数strtok():字符串分割
问题:给出一个字符串,字符串中每一个子串以逗号进行分隔,将所有的子串提取出来。eg:输入:string = “temp1,temp2,temp3”;输出:temp1temp2temp3解题思路:C语言提供了一个字符串分割函数“strtok()”#include <string.h>char* strtok(char* str, const cha...原创 2020-05-04 16:08:43 · 2049 阅读 · 0 评论 -
C++ string 、char* 、const char* 的数据类型转换
【1】string转char*string str = "hhehhe";int len = str.length();char* temp = (char *)malloc((len+1)*sizeof(char));strcpy(temp,str.c_str());【2】string转const char*string str = "abdac"; const c...原创 2020-05-04 15:55:15 · 223 阅读 · 0 评论 -
C++ 不使用循环或递归,打印0到999的整数类型
看视频教程时看到的,单纯码下来记录一下#include <iostream>using namespace std;#define A(x) x;x;x;x;x;x;x;x;x;x;int main(){ int n = 0; A(A(A(printf("%d ",n++)))); //相当于把printf命令复制粘贴1000次,然后按照从左往右运行...原创 2020-04-10 13:22:52 · 545 阅读 · 0 评论 -
C++ const关键字
关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const呢,我想事物的存在一定有它自己的道理,所以说const的存在一定有它的合理性,与预编译指令相比,const修饰符有以下的优点:1、预编译指令只是对值进行简单的替换,不能进行类型检查2、可以保护被修饰的东西,防止意外修改,增强程序...转载 2019-09-08 21:56:55 · 144 阅读 · 0 评论 -
C++ 函数指针与指针函数
函数指针可以用在一个函数在声明时就调用另一个函数中直接上代码:#include <iostream>using namespace std;int MAX(int x, int y);int MIN(int x, int y);int add(int x, int y);void process(int x, int y, int (*fun)(int x, i...原创 2020-04-04 21:51:20 · 297 阅读 · 0 评论 -
C++中int *p[4]和 int (*q)[4]的区别
前者是指针数组,后者是指向数组的指针。前:指针数组;p中有4个元素,元素全为指针。后:数组指针;可以直接理解为就是一个指针,只是这个指针指向一个int类型的数组(该数组包含四个元素)。此处定义涉及两个运算符:“*”(取值运算符,间接取值)、“[]”(下标,直接取值),“[]”的优先级别大于“*”的优先级别。首先看int *p[4],“[]”的优先级别高,所以它首先是个大小为4...原创 2020-04-04 15:24:44 · 458 阅读 · 0 评论 -
VS MFC多线程
本文基本是参考下面的几个博客写的,但是他们写的时候都是全篇文字,并且有的地方写的不是很详细,新手还需要自己摸索。因此,本人将自己做出来的工程一步步贴出来(只做了工作者线程的例子,用户界面线程没有做),并且会在最后上传我建立好的工程,可以自行下载参考。有写的不对的地方欢迎批评指正!多线程之三:MFC多线程及实例MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线...原创 2020-01-08 20:58:46 · 1468 阅读 · 0 评论 -
VS MFC按钮控件的禁用与启用
1. 给这个按钮添加Control成员变量,如m_btnQuit,这时调用m_btnQuit.EnableWindow(FALSE); //禁用按钮m_btnQuit.EnableWindow(TRUE); //启用按钮2. 如果没有添加成员变量,假设此按钮在一个对话框中,这时调用((CButton*)GetDlgItem(按钮ID))->EnableWindow(FALS...原创 2020-01-07 21:08:09 · 4073 阅读 · 0 评论 -
VS2010 MFC通过OLE方式读写Excel文件(实例+工程文件)
最近一个同学说是要做一个报账的软件,总体上要实现的功能就是读写Excel文件,于是自己就开始在网上找读写Excel的方法,首先看到了C/C++读写Excel的几种方法,说是读写的方法有很多,但是反正就是各有利弊,我就选择了以OLE的方式进行Excel的操作(这种方式必须要在电脑上安装Excel程序,否则连最开始的配置就无法完成)。在网上也看到了很多教程,其中VS2010通过OLE操作Excel...原创 2019-12-01 17:14:57 · 1791 阅读 · 10 评论 -
VS MFC之List Control控件的使用
先上图,基本功能实现就是这样一个状态,后面我会在陆续添加一些属性及功能,先记录一下实现的步骤1.新建一个工程文件,在界面上新建一个“List Control”控件,首先把它的“View”设置为“Report(报表)”模式,这个很重要,要不然到时候什么也不会显示,也不会报错2.为这个“List Control”控件关联“CListCtrl”类型变量,然后在这个工程文件的“*Dlg.c...原创 2019-11-28 14:57:45 · 5754 阅读 · 3 评论 -
VS MFC为自己新建的一个界面定义一些初始化功能
我们都知道当我们在一个已经建好的MFC工程文件中新建一个界面文件并为其添加类之后,就会有一个与这个界面对应的头文件和源文件,但是这两个文件里面其实就是自动为我们搭了个基本的框架(如构造函数、析构函数、数据的关联变量、空间的消息响应函数),其他的就没有了,当我们需要为这个界面自定义一些初始化操作的时候,可以自己在这个类里面添加一个初始化函数,当需要调用这个界面时就会先运行这个初始化函数,下面结合实例...原创 2019-11-27 09:55:53 · 789 阅读 · 0 评论 -
VS MFC界面为右上角的【红叉】按钮添加消息响应事件
前面我已经写了一篇点击按钮控件弹出一个界面的方法VS MFC界面下点击一个控件会出现另一个界面,下面就是一个例子,点击左边【用户登录】界面上的“注册账号”按钮,就会首先关闭【用户登录】界面,然后弹出【注册账号】界面,但是当我们直接点击【注册账号】界面右上角的“红叉”按钮时,【注册账号】界面是关闭了,但是此时并不会弹出【用户登录】界面,我们只需要在【注册账号】这个类的析构函数中添加显示【用户登录】界...原创 2019-11-24 11:44:50 · 2834 阅读 · 0 评论 -
VS MFC界面工程项目配置MySQL数据库
1.安装数据库,安装教程我自己写了一篇:MySQL 安装教程,建立工程文件2.【项目】 【属性】 【配置属性】 【C++】 【常规】 【附加包含目录】,将安装的数据库文件夹下的include文件夹包含到这里3.【项目】 【属性】 【配置属性】 【链接器】 【常规】 【附加库目录】,将安装的数据库文件夹下的lib文件夹包含到这里4.【项目】 【属性】 【配置属性】 【链接器】 ...原创 2019-11-22 12:04:07 · 481 阅读 · 0 评论 -
VS MFC改变一个工程文件中初始显示的界面为自己新建的界面
本文实现的目的就是,当我们新建一个MFC工程“informationManagementSystem”文件时,自己又新建了一个dialog界面“Logon”时(新建界面方法:VS MFC界面下点击一个控件会出现另一个界面),如果不进行设置,运行程序就会直接运行主界面,如果我们新建了登录的界面,需要先显示登录界面,然后再出现主界面,需要改一下主界面的不带“Dlg”的源文件的一个地方的程序就好...原创 2019-11-21 13:33:14 · 678 阅读 · 0 评论 -
VS MFC界面下点击一个控件会出现另一个界面
1.首先新建一个界面,直接点击新建即可2.可以点击新建的dialog界面,右键“属性”,对界面的名字进行更改3.新建了界面以后还需要为这个界面建立这个界面自己的类文件,双击刚才新建的界面,然后单击新建的界面进行选中,然后右键“添加类”,为界面添加类4.输入类名,命名格式最好是“C”+"新建的界面名称"+“Dlg”,后面加“Dlg”是备注自己建立的是界面类文件,跟其他的头文...原创 2019-11-21 13:24:22 · 3123 阅读 · 0 评论 -
C++ STL之copy函数
STL的copy函数是用来复制任何具有迭代器的对象的元素。函数原型如下:std::copy(start, end, container);start,end是需要复制的源文件的头地址和尾地址,container是接收器的起始地址。具体用法如下:#include <iostream>#include <stdlib.h>using namespace...原创 2019-11-07 09:13:34 · 3334 阅读 · 0 评论 -
MFC 单击一个控件,令一些文本编辑框变为不可输入模式
具体需要实现的功能如下:单击长方体按钮,则圆柱的相关参数(半径,圆柱高度)不可输入单击圆柱按钮,则长方体的相关参数(长,宽,高)不可输入只需要在圆柱控件的消息响应函数中加入如下代码即可//令圆柱的相关文本编辑框变为可输入模式GetDlgItem(IDC_EDIT1)->EnableWindow(TRUE);GetDlgItem(IDC_EDIT3)->En...原创 2019-10-30 16:54:11 · 3640 阅读 · 0 评论 -
VS 一个解决方案里面建立多个项目
想实现的效果如下:【1】【2】注意:此时那个项目的名字是黑体,现在就是运行的是那个项目,并不是你打开的是那个项目的源文件就运行那个项目,如果你想运行test2项目,在test2名字上反键,设为启动项即可...原创 2019-09-08 13:43:40 · 8167 阅读 · 2 评论 -
栈和队列的异同
栈(Stack)和队列(Queue)是两种操作受限的线性表。(线性表:线性表是一种线性结构,它是一个含有n≥0个结点的有限序列,同一个线性表中的数据元素数据类型相同并且满足“一对一”的逻辑关系。“一对一”的逻辑关系指的是对于其中的结点,有且仅有一个开始结点没有前驱但有一个后继结点,有且仅有一个终端结点没有后继但有一个前驱结点,其它的结点都有且仅有一个前驱和一个后继结点。)这种受限表现在...转载 2019-09-03 15:41:13 · 259 阅读 · 0 评论 -
排序算法
本文是看了多个网页,不同的人写的关于排序算法的讲解和代码后整理的,因为如果公布这篇文章时如果选转载,就要写出原文链接,但是原文有很多,所以我写的是原创,但下面会详细写出一些参考链接,转载的部分也会详细说明并附上原文链接,不喜勿喷,谢谢!【1 选择排序】【排序思路:】从全部序列中选取最小的,与第0个元素交换,然后从第1个元素往后找出最小的,与第一个元素交换,再从第2个元素往后选取最小的,与第...原创 2019-09-01 16:24:31 · 126 阅读 · 0 评论 -
sort 函数降序排列
首先需要包含头文件#include <algorithm>#include <iostream>#include <math.h>#include <vector>#include <algorithm>#include <string>using namespace std;int main(){...原创 2019-08-20 22:54:46 · 15645 阅读 · 0 评论 -
整型转字符串,字符串转整型
【1】int转stringint num = 10;//方法1string str = to_string(static_cast<long long>(num));//方法2char ch[3];string str2 = itoa(num,ch,10);//char *itoa( int value, char *string,int radix);// 原型...原创 2019-08-20 22:28:35 · 301 阅读 · 0 评论 -
C++ 一直输入字符串,遇到enter键结束
#include <iostream>#include <stdlib.h>#include <string>#include <vector>#include <algorithm>using namespace std;int main(){ string tempStr; vector<string&...原创 2019-08-20 16:37:58 · 9234 阅读 · 0 评论