VC++
z215367701
用代码改变世界!
展开
-
关于实参和形参
C++中实参和形参结合的方式有三种:传值、引用和传地址。前面两种比较简单,不用多说,这里重点说一下传地址。 传地址一般都跟指针有关,当用指针进行动态存储分配的时候,是需要主动释放内存的,否则会出现内存泄漏。 假设实参是一个进行动态存储分配的指针,那么,一般情况下,释放实参指针或者释放形参指针都可以,因为实参和形参指向的是同一段内存。原创 2015-09-08 20:58:03 · 737 阅读 · 0 评论 -
Qt多线程学习:创建多线程
【为什么要用多线程?】传统的图形用户界面应用程序都只有一个执行线程,并且一次只执行一个操作。如果用户从用户界面中调用一个比较耗时的操作,当该操作正在执行时,用户界面通常会冻结而不再响应。这个问题可以用事件处理和多线程来解决。 【Linux有线程的概念吗?】传统的UNIX系统也支持线程的概念,但一个进程里只允许有一个线程,这样多线程就是多进程。Linux下的Posix转载 2016-12-14 09:21:34 · 1216 阅读 · 0 评论 -
VC++头文件中的条件编译问题(转载)
条件编译,是让编译器在条件满足时才进行编译,否则编译器就会忽略。 条件编译块,其语法结构为: #if [必须] #elif [可选] #else [可选] #endif [必须] 另外下面的形式是等价的: #ifdef (identifer) #if defined (identifer) #ifndef (identifer) #if !defined (ide转载 2016-12-16 22:13:52 · 770 阅读 · 0 评论 -
EnumDisplayMonitors—多屏显示的实现
在编程中要用到相关的结构体和函数,这些都已经包装好,在multimom.h头文件中,该头文件VC自带有。在要用的的地方包含该头文件,注意在包含前面要加上一句宏定义:#define COMPILE_MULTIMON_STUBS 几个重要的结构体和函数 EnumDisplayMonitors( ) 该函数对当前用户系统中所包含的显示器进行枚举。应用程序就是通过与该转载 2016-12-21 13:23:35 · 8498 阅读 · 0 评论 -
c++中const的使用详解
Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。1、定义常量(1)const修饰变量,以下两种定义形式在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。 TYPE const ValueName = value; const TYPE ValueNam转载 2016-12-21 15:26:58 · 2663 阅读 · 0 评论 -
vector容器类的使用
vector容器类的使用1. vector容器简介:vector向量容器是一种随机访问的数组类型,它提供了对数组元素的快速访问、随机访问,以及在序列尾部快速、随机地插入和删除操作。它类似于数据结构中的队列、数组和堆栈等概念。2. vector容器的定义2.1 头文件 #include2.2 命名空间 using namespace转载 2016-12-22 20:22:30 · 428 阅读 · 0 评论 -
STL list链表的用法详细解析
这篇文章是关于C++语言的一个新的扩展——标准模板库的(Standard Template Library),也叫STL。本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂。不失为STL的入门文章,新手不容错过!0 前言1 定义一个list2 使用list的成员函数push_back和push_front插入一个元素到list转载 2016-12-22 20:26:05 · 833 阅读 · 0 评论 -
自动识别OpenCV版本并添加依赖库
这里给大家介绍一种在头文件中自动判断识别OpenCV的版本号,并据此添加对应的依赖库(.lib文件)的方法。具体代码如下:#ifndef _PREDEP_H_#define _PREDEP_H_ #pragma once #include "targetver.h" #include #include #include #include "open转载 2016-12-29 22:37:03 · 788 阅读 · 1 评论 -
C语言内存空间分布详解
BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。代码段:代码段(code segment/text segment)通常是指用来存放...转载 2017-07-20 16:54:43 · 9965 阅读 · 5 评论 -
Qt中mouseMoveEvent在MainWindow中使用
最近用Qt软件界面,需要用到mouseMoveEvent,研究了下,发现些问题,分享一下。 在Qt中要捕捉鼠标移动事件需要重写MouseMoveEvent,但是MouseMoveEvent为了不太耗资源在默认状态下是要鼠标按下才能捕捉到。要想鼠标不按下时的移动也能捕捉到,需要setMouseTracking(true)。bool mouseTracking转载 2017-08-23 18:57:32 · 564 阅读 · 0 评论 -
如何检测应用程序调用了哪些DLL文件?
之前所用的检测工具是Dllshow,后来突然不能用了,VS以前有Depends,后来高级版本也没了。最近找到一种简单方便的方法,利用windowsx系统自带的功能。运行你想知道的应用程序,然后在进入dos窗口(开始->运行->command),输入命令:tasklist /m |more就可以看到你那个应用程序调用的dll文件了或者tasklist /m >c:\dll.txt就把结果保存原创 2017-08-31 10:13:41 · 16040 阅读 · 0 评论 -
C/C++与Matlab混合编程初探
% 欢迎转载,尊重原创,所以转载请注明出处。% http://blog.csdn.net/bendanban/article/details/37830495=======================分割线以下为正文================================ Matlab 拥有丰富的功能,编程简单。不过,有些情况下,Matlab程序的执行速度比转载 2017-10-09 20:45:31 · 336 阅读 · 1 评论 -
Matlab与C/C++混合编程接口应用总结
Matlab与C/C++混合编程接口及应用 摘要:Matlab具有很强的数值计算和分析等能力,而C/C++是目前最为流行的高级程序设计语言,两者互补结合的混合编程在科学研究和工程实践中具有非常重要的意义。从Matlab调用C/C++代码及C/C++调用m文件两方面,深入地研究了它们之间混合编程的原理和实现机制,并且给出了具体条件下的混合编程方法和步骤。实验表明,给出的Matlab与C/转载 2017-10-09 20:47:30 · 1165 阅读 · 0 评论 -
#pragma用法详解
#pragma用法详解(0)前言 #Pragma 指令的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma 指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma Para 其转载 2017-10-26 21:50:37 · 3555 阅读 · 0 评论 -
C++ Socket编程步骤
sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。服务器端编程的步骤:1:加载套接字库,创建套接字(WSAStartup()/socket());2:绑定套接字到一个IP地址和一个端口上(bind());3:将套接字设置为监听转载 2017-11-14 14:20:29 · 286 阅读 · 0 评论 -
VS调试技巧,提高调试效率
如果你还没有使用过这些技巧,希望这篇博文能帮你发现它们。 它们学起来很容易,能帮你节省很多时间。运行到光标(Ctrl+ F10)我经常看见人们是这样来调试应用程序的: 他们在应用程序需要调试的代码前设置一个断点,然后反复的敲F10/F11来逐步通过代码,直到到达他们真正想要研究的确切位置。有些时候他们需要仔细观察所跨过的每行代码,这样使用F10/F11 就很合理。 但是更普遍的是,他们只想转载 2018-01-11 15:40:52 · 2424 阅读 · 0 评论 -
关于VS单步调试乱跳问题
最近一段时间一直在调程序,被一个问题所困扰:Debug模式下,单步调试时,代码指示器到处乱跑,并没有按照行号逐一运行。事实上,这只是假象·,代码还是在逐行运行。造成这种假象的原因是文档中出现了一行写了多行代码的情况,即一行出现了多个分号。保持一行只写一行代码的好习惯!原创 2018-01-11 16:08:56 · 8170 阅读 · 4 评论 -
Error: must call SetScrollSizes() or SetScaleToFitSize()问题的解决
我的程序原来是基于CView的,但后来为了支持滚动功能所以按照网上的方法,手动把CView改为CScrollView(一些相应的处理都改了),但是程序运行后发生错误,调试发现程序进入下面的错误处理中。void CScrollView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo){ASSERT_VALID(pDC);#ifdef _D转载 2016-12-01 21:35:37 · 663 阅读 · 0 评论 -
windows客户端开发--文件以及文件夹相关操作(windows api)
1 重命名 不再赘述,看看之前的博客吧: 《C++中修改文件夹名以及文件名》2 判断是文件还是文件夹是否存在// 判断文件是否存在BOOL IsFileExist(const CString& csFile){ DWORD dwAttrib = GetFileAttributes(csFile); return INVALID_FILE_ATTRIBUTES转载 2016-11-18 17:54:21 · 384 阅读 · 0 评论 -
MFC学习笔记——多窗口之间的通信
具体步骤新建一个工程,名称为“MultiWindows”,使用 Unicode 编码。具体界面可以如下:首先添加一个新的窗口并将界面布局为下图,具体方法如下:在添加好窗口之后还要为这个窗口添加一个类文件,具体方法可如下:添加完成之后就可以添加消息功能了,这次有所不同的是,在以往的文章里都是只有一个窗口,而消息也都是在一个窗口内。如今变成了转载 2016-12-01 09:18:26 · 5075 阅读 · 0 评论 -
关于memcpy函数
c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。函数原型 void *memcpy(void *dest, const void *src, size_t n);功能 从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址原创 2015-09-14 08:29:21 · 454 阅读 · 0 评论 -
两种方法实现MFC 对话框最大化时控件也随比例最大化或者还原
方法一:单个控件ID操作第一步、在对话框类中(.h文件)定义如下变量和函数定义如下几个变量:[cpp] view plaincopyvoid ReSize(int nID); BOOL change_flag; float m_Multiple_height; float m_Multiple_width;转载 2015-12-10 22:37:55 · 779 阅读 · 0 评论 -
C++学习总结
很多面临学习C++(C++培训 )++的人都困惑,到底该如何的学习c++呢?以下是我的总结,希望对大家有所帮助。 1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》转载 2015-12-10 22:35:42 · 303 阅读 · 0 评论 -
CString与string、char*的区别和转换
我们在C++的开发中经常会碰到string、char*以及CString,这三种都表示字符串类型,有很多相似又不同的地方,常常让人混淆。下面详细介绍这三者的区别、联系和转换:各自的区别char*:char*是一个指向字符的指针,是一个内置类型。可以指向一个字符,也可以表示字符数组的首地址(首字符的地址)。我们更多的时候是用的它的第二的功能,来转载 2015-12-13 22:31:37 · 272 阅读 · 0 评论 -
带你玩转Visual Studio——带你了解VC++各种类型的工程
上一篇文章带你玩转Visual Studio——带你新建一个工程一文中提到新建一个工程时会有很多的工程类型(图1),现在将简单介绍各种类型工程的含义和主要用途。由于这里包含的工程类型太多,有很多本人也没有接触过,有些可能理解的不太对的地方还请谅解。首先说明一下,如果你的初学者或者C++开发的时间不长,本篇文章的很多内容理解不了是正常的(我当初也不理解)。你可先有大概的概念,等工作(或有实际转载 2015-12-13 22:35:18 · 449 阅读 · 0 评论 -
OpenCV基本画图功能
[cpp] view plaincopy/** * @file Drawing.cpp * @brief Simple sample code */ #include #include #define w 400 using namespace cv; /// Function he转载 2015-12-04 09:36:10 · 390 阅读 · 0 评论 -
C++项目文件中的后缀名为SDF的文件是什么?有什么用?
SQL Server Compact Edition Database File (.sdf)文件,是工程的信息保存成了数据库文件,如果你没有参加大型的团队项目,不涉及到高深的调试过程,这个文件对于你来说没什么用了,可以放心的删除,如果你后来又需要这个文件了,简单,打开工程里的.sln文件重新编译链接就ok了。如果完全不需要,有讨厌这个文件太大,那么可以:在Visual Studio里进入如下设原创 2016-03-05 13:02:01 · 913 阅读 · 0 评论 -
深入浅出MFC文档/视图架构之基本概念
深入浅出MFC文档/视图架构之基本概念引言 MFC引入了"文档/视图"结构的概念,理解这个结构是编写基于MFC编写复杂Visual C++程序的关键。"文档/视图"中主要涉及到四种类: (1)文档模板:class CDocTemplate; // template for document creationclass CSingleDocTemp转载 2016-04-04 19:36:25 · 4170 阅读 · 0 评论 -
c/c++在windows下获取时间和计算时间差的几种方法总结
一、标准C和C++都可用1、获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( time_t timer1, time_t timer0 )。 精确到秒。测试程序如下:[c-sharp] view plain copy#include #include int main() { t转载 2016-05-02 13:44:03 · 728 阅读 · 0 评论 -
OpenMP编程指南
进入多核时代后,必须使用多线程编写程序才能让各个CPU核得到利用。在单核时代,通常使用操作系统提供的API来创建线程,然而,在多核系统中,情况发生了很大的变化, 如果仍然使用操作系统API来创建线程会遇到一些问题。具体来说,有以下三个问题:1)CPU核数扩展性问题多核编程需要考虑程序性能随CPU核数的扩展性,即硬件升级到更多核后,能够不修改程序就让程序性能增长,这要求程序中创建的线转载 2016-05-02 16:20:51 · 366 阅读 · 0 评论 -
关于实现代码并行
最近在论坛里看到有人回答关于代码并行的问题,觉得挺好,但还没去试验过,先记下来。#pragma omp parallel [clauses]{ code_block//这段代码并行}1234#pragma omp [parallel] for转载 2016-04-18 19:19:12 · 985 阅读 · 0 评论 -
常用的函数:atoi,itoa,atof,_ttoi等
atoi---ASCII to integer,将字符串转换成整形,从数字或正负号开始转换,一直到非数字为止[cpp] view plain copy#include #include int main(void) { float n; char *str = "12345.67"; n =转载 2016-05-18 16:35:33 · 790 阅读 · 0 评论 -
C、C++函数集(速查)
第1章 数学函数 1.1 _chgsign——求参数的相反数 1.2 _copysign——复制数据 1.3 _hypot——求直角三角形斜边长度 1.4 _max——求两个数中的大数 1.5 _min——求两个数中的小数 1.6 _scalb——求参数的(2^exp)倍数 1.7 abs——求整数的绝对值 1.8 acos——求反余弦 1.9转载 2016-08-16 09:16:15 · 774 阅读 · 0 评论 -
国外程序员整理的 C++ 资源大全
摘要:C++是在C语言的基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言。应用较为广泛,是一种静态数据类型检查的,支持多重编程的通用程序设计语言。关于 C++ 框架、库和资源的一些汇总列表,由 fffaraz发起和维护。内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++ Standard转载 2016-09-08 21:33:34 · 1141 阅读 · 2 评论 -
VC获取屏幕分辨率及大小相关
vc得到屏幕的当前分辨率方法:1.Windows API调用int width = GetSystemMetrics ( SM_CXSCREEN );int height= GetSystemMetrics ( SM_CYSCREEN );如果想动态自适应分辨率的变化,处理WM_DISPLAYCHANGE消息.2.获得分辨率BOOL EnumDisplaySetting转载 2016-11-04 09:28:19 · 656 阅读 · 0 评论 -
VC获取并修改计算机屏幕分辨率(MFC)
//检测当前分辨率 int Width = GetSystemMetrics(SM_CXSCREEN); int Height = GetSystemMetrics(SM_CYSCREEN); DEVMODE lpDevMode0; lpDevMode0.dmBitsPerPel=32; lpDevMode0.dmPelsWidth转载 2016-11-04 09:37:45 · 670 阅读 · 0 评论 -
C++智能指针梳理
参考:https://en.wikipedia.org/wiki/Memory_leak (维基百科,内存泄漏)https://en.wikipedia.org/wiki/Resource_leak (维基百科,资源泄漏)http://blog.csdn.net/dangercheng/article/details/12618161(内存泄露和野指针的概念)http://blog.csd转载 2016-11-06 11:59:17 · 454 阅读 · 0 评论 -
Matlab中调用C++dll
利用mex技术可以实现这个功能,但是必须例外写一个接口函数,比较麻烦。利用dll调用的方法,简单方便。下面就以实现加法函数add()为例,来详细介绍具体过程。一.利用VS生成dll文件利用VS建立一个dll工程,如下图所示: 然后添加头文件和源文件: 在头文件中添加以下内容:#ifndef DLL_H#define DLL_H#ifdef __cpluspl...原创 2018-05-10 22:36:03 · 17784 阅读 · 3 评论