
C/C++
T20140401
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深拷贝与浅拷贝
c++默认的拷贝构造函数是浅拷贝浅拷贝就是对象的数据成员之间的简单赋值,如你设计了一个没有类而没有提供它的复制构造函数,当用该类的一个对象去给令一个对象赋值时所执行的过程就是浅拷贝,如:class A { public: A(int _data) : data(_data){} A(){}private: int data; };int main() { A a(5), b = a;原创 2016-06-26 10:47:31 · 340 阅读 · 0 评论 -
MFC ICON变更
MFC已有默认的图标,若想更改为自己想要的图标。则可以按照以下步骤:1.右键单击资源文件,添加图标,导入.icon格式的自定义文件2.打开Resource.h,将新添加的ICON ID IDI_ICON1更改为最小值,即为默认值IDR_MAINFRAME的128.3.修改Dlg对话框类中的构造函数中语句,m_hIcon = AfxGetApp()->LoadIcon(IDR_MAI原创 2016-11-08 15:10:46 · 510 阅读 · 0 评论 -
宽字节字符串多字节字符串转换
利用微软提供的系统API函数MultiByteToWideChar()和WideCharToMultiByte()可以方便的实现宽字节字符串与多字节字符串的转换。然后以上两个API函数参数太多,实际使用起来并不怎么方便。其实可以领用sprintf()和swprintf()函数来实现同样的功能。sample如下:#include "stdafx.h"#include int _tm原创 2016-11-29 18:20:52 · 717 阅读 · 0 评论 -
new 和malloc的区别
整理了new和malloc的几点区别,记下来以防忘记。1.申请的内存所在位置 new操作符从自由存储区上位对象动态分配内存空间,而malloc函数则从堆上动态分配内存。2.返回类型安全性 new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无需类型转换。malloc内存分配成功则是返回void*类型。3.内存返回失败返回值 new内存分配失败时,原创 2016-11-30 20:13:44 · 347 阅读 · 0 评论 -
MFC ADO连接数据库
MFC连接数据其实很简单,网上有许多相关资料,其实重点是连接字符串,其他的按照步骤操作很容易配置。1.stdafx.h文件变更在stdafx.h中添加如下语句#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")2.声明相关指针数据库原创 2017-01-14 22:23:03 · 553 阅读 · 3 评论 -
VS工程项目降级
Issue:有时候VS2013或者VS2015创建的项目,用VS2012编译不通过,出现如下错误。1>------ Build started: Project: T2015, Configuration: Debug x64 ------1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platf原创 2017-02-15 09:52:10 · 2726 阅读 · 5 评论 -
Qt image load path
Qt 提供QPixmap 和Image显示图片,QPixmap加载图片相对路径时,由于Mac把生成的可以执行程序进行了一些封装,如Mac下可执行程序mypixmap.app。程序实际执行路径是:mypixmap.app/Contents/MacOS/mypixmap.exe.因此若要初始化加载图片,图片文件应当放在exe程序同级目录下。QPixmap pixmap;pixmap.l原创 2017-05-29 07:39:51 · 1177 阅读 · 0 评论 -
list erase issue
c++中迭代erase list中元素时候,会出现崩溃的issue。如下代码避免了erase后程序崩溃的issue: list strlst; string s1 = "s1"; string s2 = "s2"; string s3 = "s3"; strlst.push_back(s1); strlst.push_back(s2);原创 2017-05-19 20:34:07 · 414 阅读 · 0 评论 -
MFC连接数据库奔溃issue
在MFC连接数据库文章中,传送门:http://blog.youkuaiyun.com/cnuserfdg/article/details/54429536,若远程连接数据库且发生网络故障时,程序会发生奔溃的issue。实际debug发现连接数据库的sql语句发生异常,try...catch语句并没有捕获到异常。为了捕获该异常,将语句改为如下形式: try {原创 2017-05-22 21:42:25 · 522 阅读 · 0 评论 -
SQL error 0x800a0cc1
用Ado方式访问数据库的时候,出现0x800a0cc1错误。网上搜了下,其意义为引用了一个不存在的字段名,对比代码发现,自己获取列属性名字的时候写错了,造成了这种错误。errorcode参考网址:http://down.chinaz.com/server/201103/159_1.htm原创 2017-07-11 22:20:51 · 1880 阅读 · 0 评论 -
工程应用另外一个工程
单位的公共库是一个独立的工程文件,为了在自己的工程中引用公共库,需要做一些特别的配置。开发环境:VS2013操作系统:WIn10 RS21.导入公共库工程,方法:文件->添加现有工程文件即可2.右键单击工程名->选择属性->通用属性->添加新引用如下图,最后单击确定即可.在自己工程中,包含相应的头文件即可引用相应的库了.原创 2017-07-11 22:30:54 · 470 阅读 · 0 评论 -
信号量实现程序的单实例启动
有时候需要防止程序启动多个实例,通过信号量可以实现这个简单的机制。BOOL checkexists(HANDLE hSem){ hSem = CreateSemaphore(NULL, 1, 1, _T("Global\\TInitialSem")); if (hSem) { if (ERROR_ALREADY_EXISTS == GetLastError()) { HWND...原创 2018-05-10 20:33:25 · 382 阅读 · 0 评论 -
文件路径json格式存储
项目需要以json格式存储指定文件目录结构,如需求如下所示:简要思路,遍历指定目录结构,存储在list中,然后,取出每一条路径结构,进行json格式化,与已有json格式路径对象相加。生成json格式代码:BOOL _makeValue(Json::Value & ret, const PFILEINFO pfileInfor){ BOOL blRet = FAL...原创 2018-10-16 10:05:39 · 4942 阅读 · 0 评论 -
MFC 对话框程序返回值
控制台程序可以很方便的获取到程序的返回值,MFC对话框程序返回值的获取就没有控制台程序获取那么方便了。在MFC对话框程序中有两个大类,一个是应用程序类,一个是用于显示见面的对话框类。由于人和程序的交互是通过对话框类实现,而操作系统获取程序返回值却只能从应用程序类获取返回值。因此为了获取对话框程序的返回值,可以通过以下步骤实现。1.在应用程序类中定义一个整型类型的返回值变量,m_iR原创 2016-10-24 14:47:52 · 4188 阅读 · 0 评论 -
程序返回值
一.Windows下windows下程序返回值查询比较简单,打开DOS命令窗口,执行程序,输入echo %errorlevel%即可查看程序返回值。二.Linux打开控制台,执行程序,输入echo $?可以达到与Windows下同样的效果。原创 2016-09-10 15:24:28 · 735 阅读 · 0 评论 -
mac 下VIM 配色方案
第一次利用Mac内置的vim写程序时发现vim没有配色,没有语法高亮等功能,网上搜索了下配色功能,记下以备用。一.查看配色打开终端,输入如下命令,即可查询配色方案 ls /usr/share/vim/vim73/colors查询结果如下,配色方案以.vim结尾。README.txt delek.vimkoehler.vim peachpuff.vimto原创 2016-09-10 15:14:49 · 2668 阅读 · 0 评论 -
atoi函数实现
在网上看到了篇atoi的简单实现,自己尝试着写了下,不足之处,还请指正。voidMy_atoi(char*str){ intsign = 1; intnum=0; // check whether string is NULL if(str== NULL) cout"Itis a null st原创 2016-06-26 10:47:46 · 392 阅读 · 0 评论 -
C++多态性
C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。 C++多态性是通过虚函数来实现的,虚函数允许子类重新定原创 2016-06-26 10:47:28 · 372 阅读 · 0 评论 -
大端模式和小端模式
在 各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机 通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:Big-Endian和Little-Endian,下面先从字节序说起。一、什原创 2016-06-26 10:47:25 · 313 阅读 · 0 评论 -
C++ 虚函数表解析(转载)
作者:陈皓 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 虚函数原创 2016-06-26 10:47:18 · 1472 阅读 · 0 评论 -
程序在内存中的分布(转转)
在现代的操作系统中,当我们说到内存,往往需要分两部分来讲:物理内存和虚拟内存。从硬件上讲,虚拟空间是CPU内部的寻址空间,位于MMU之前,物理空间是总线上的寻址空间,是经过MMU转换之后的空间。一般我们所说的程序在内存中的分布指的就是程序在虚拟内存中的存储方式。从低地址到高地址,可分为下面几段: 预留内存地址(操作系统维护的内存地址,不可访问) 程序代码区(只读,存代码和一些其他的东原创 2016-06-26 10:47:12 · 340 阅读 · 0 评论 -
c/c++获取系统时间函数
原文地址:c/c++获取系统时间函数作者:杠杆控UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clocktick(时钟计时单元)1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大 家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的 问题。下面转载 2016-06-26 10:46:39 · 4828 阅读 · 0 评论 -
C++ static、const和static…
原文地址: static、const和static const 以及它们的初始化">C++ static、const和static const 以及它们的初始化作者:HeartBreakerconst定义的常量在函数执行之后其空间会被释放,而static定义的静态常量在函数执行后不会被释放其空间。static 表示的是静态的。类的静态成员函数,成员变量是和类相关的,不是和类的具体对象相关,即使转载 2016-06-26 10:46:08 · 317 阅读 · 0 评论 -
C++中虚函数工作原理和(虚)继承类的内存占用大小计算
转载请标明出处,原文地址:http://blog.youkuaiyun.com/hackbuteer1/article/details/7883531一、虚函数的工作原理 虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一转载 2016-06-26 11:10:47 · 356 阅读 · 0 评论 -
C++中抽象类与接口的区别
一、抽象类和接口抽象类: 抽象类是特殊的类,不能被实例化(将定义了纯虚函数的类称为抽象类);除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的,但同时也能包括普通的方法。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。原创 2016-06-26 10:47:15 · 2933 阅读 · 0 评论 -
判断OS版本的几个方法
Win8.1以前,可以利用微软提供的OSVERSIONEX这个结构体直接获取到系统所对应的版本号。使用方法如下:BOOL getOSVer(){ OSVERSIONINFOEX osinfor; ZeroMemory(&osinfor, sizeof(OSVERSIONINFOEX)); osinfor.dwOSVersionInfoSize = sizeof(OSVERSION原创 2016-07-02 22:48:15 · 3886 阅读 · 0 评论 -
MFC利用OpenCV读取摄像头
一,引言在MFC中利用OpenCV可以很方便的实现摄像头视频的播放,对于从摄像头中读取到的图片,可以利用MFC中的CImage类很好的呈现在MFC界面上。二,实验环境VS版本:VS2013OpenCVC库版本:OpenCV2.3.1三,实现步骤1.首先采用VS2013新建基于对话框的MFC应用程序2.添加Picture Control,用于显示从摄像头中读取的图片原创 2016-08-07 09:52:16 · 2227 阅读 · 0 评论 -
C++ 获取OEM String
工作过程中需要读取机器OEM String信息,读取该信息最简便的方法是采用WMIC。1.批处理脚步读取打开DOS命令后窗口,键入wmic computersystem get OEMStringArray,即可读取机器OEM String信息。2.powershell读取打开powershell界面,键入(get-wmiobject -class Win32_ComputerSy原创 2016-08-29 22:48:51 · 1621 阅读 · 0 评论 -
Xcode OpenCV 环境配置
一、软件环境 Xcode版本V9.2,OpenCV版本3.4.3二、安装方法 brew install OpenCV,自动下载安装OpenCV三、环境变量配置1.Head search paths 设置为 /usr/local/include,Library search path设置为/usr/local/lib。 2.动态库文件设置在finder文件下,...原创 2019-01-10 23:45:16 · 762 阅读 · 0 评论