C/C++
努力的草根
奔跑中的小蜗牛
展开
-
QT windows下只允许运行一个实例
int main(int argc, char *argv[]){ QApplication a(argc, argv); QSharedMemory *shareMem = new QSharedMemory(QString("SingleInstanceIdentify")); /* if the sharedmemory has not been crea...转载 2018-10-05 16:56:52 · 744 阅读 · 0 评论 -
影像质量评估之锐利度--MTF(SFR)
由于最近需要写一个Camera 自动调焦的程式,需要用到MTF(Modulation Transfer Function),其中MTF有很多实现算法,本人目前使用SFR(spatial frequency response)算法衡量影像的锐利度(Sharpness)。SFR数值越大,代表图像越锐利,此时图片也越清晰。 一般情况下测试图像的锐利度使用ISO12233 Chart,转载 2014-08-09 11:23:05 · 42426 阅读 · 9 评论 -
remove USB
.获取设备Handle根据卷的驱动器类型和DOS设备名,使用Windows API枚举所有磁盘,包括软盘、光盘,或者其他设备。//---------------------------------------------------------------------- // returns the device instance handle of a storage volume转载 2014-08-07 08:36:34 · 1179 阅读 · 0 评论 -
好吧, 有空学学C/C++ 的左值 右值
http://blog.csdn.net/column/details/supermegaboy.html原创 2014-07-12 21:52:02 · 634 阅读 · 0 评论 -
位操作 基础篇之位操作全面总结
Title: 位操作基础篇之位操作全面总结Author: MoreWindowsE-mail: morewindows@126.comKeyWord: C/C++ 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位操作压缩空间 筛素数 位操作趣味应用 位操作笔试面试位操作篇共分为基础篇和提高篇,基础篇主要对位操作进行全面总结,帮助大家梳转载 2014-08-03 21:42:45 · 848 阅读 · 0 评论 -
VI(VIM)编辑器 用法
百度关于vi的资料 http://baike.baidu.com/view/908054.htm关于vi 和vim的介绍可以在上面的网址看到。1 进入和退出vi进入:在终端命令行输入 vi 文件名 就会进入vi,并且建立了一个空的名字为刚才输入的文件,假如进入vi的时候不加文件名,那么进入vi后系统会自动建立一个空文件,你可以在命令模式下给这个文件改名。退出转载 2014-07-02 23:06:45 · 866 阅读 · 0 评论 -
gtk多线程编程用例
#include gtk/gtk.h> static GtkWidget *fixed; static GtkWidget *button1; static GtkWidget *button2; int running = 1;void our_thread1(GtkWidget *button) ...{ gint x,y,towards; x=40;转载 2014-07-19 17:09:19 · 2057 阅读 · 0 评论 -
CreateFile,ReadFile等API详解
一、*****CreateFile***** 这个函数可以创建或打开一个对象的句柄,凭借此句柄就可以控制这些对象:控制台对象、通信资源对象、目录对象(只能打开)、磁盘设备对象、文件对象、邮槽对象、管道对象。 函数原型:HANDLE CreateFile(LPCTSTR lpFileName, // file n转载 2014-05-22 16:37:00 · 1116 阅读 · 0 评论 -
SQL Server 获取服务器时间
SQL SERVER 2000用sql语句如何获得当前系统时间就是用GETDATE();Sql中的getDate()2008年01月08日 星期二 14:59Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2008 10:57AMSelect CONVERT(varchar(转载 2014-05-14 11:52:15 · 2454 阅读 · 0 评论 -
C 指针详述
第一章 指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让 我们分别说明。 先声明几个指针放着做例子: 例一: (1)int *ptr; (2)char *ptr; (3)int **ptr;转载 2014-05-10 17:11:56 · 647 阅读 · 0 评论 -
visual studio 关于配置项目系统属性宏
:http://blog.csdn.net/li_007/archive/2009/05/08/4161259.aspx开拓进取的小乌龟------->CSDN点滴点点滴滴Blog宏说明$(ConfigurationName) 当前项目配置的名称(例如“Debug”)。$(IntDir)转载 2014-05-16 11:56:30 · 993 阅读 · 0 评论 -
C++ 读取中文文本 。。。。
使用Windows API处理字符格式转换[html] view plaincopystd::string ToUTF8(const wchar_t* buffer, int len) { int size = ::WideCharToMultiByte(CP_UTF8, 0, buffer, len, NULL, 0,转载 2014-09-24 11:20:57 · 4417 阅读 · 0 评论 -
MFC _RecordsetPtr 用法小结
_RecordsetPtr智能指针,它是专门为通过记录集操作数据库而设立的指针,通过该接口可以对数据库的表内的记录、字段等进行各种操作。要搞清楚:数据库和ADO的记录集是两个不同的概念, 是存在于不同物理位置的两个存储空间。 记录集相当于是实际数据的一份拷贝。 正因为记录集是相对脱离数据库而存在的, 所以才存在后面将要介绍的Open方法中涉及的光标类型和锁定类型这两个问题。_variant_t转载 2014-09-24 08:17:27 · 7123 阅读 · 0 评论 -
wchar_t char string wstring 相互转换
第一种方法:调用WideCharToMultiByte()和MultiByteToWideChar(),代码如下(关于详细的解释,可以参考《windows核心编程》):#include #include using namespace std;//Converting a WChar string to a Ansi stringstd::string WChar2Ansi(LPCWST转载 2014-09-24 14:03:38 · 1064 阅读 · 0 评论 -
c++ list, vector, map, set 区别与用法比较
转载自 http://www.cnblogs.com/zhaodun/p/6510161.htmlList封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。Li转载 2017-06-28 11:22:45 · 434 阅读 · 0 评论 -
矩阵Mat操作总结
一、矩阵Mat I,img,I1,I2,dst,A,B;double k,alpha;Scalar s;1.加法I=I1+I2;//等同add(I1,I2,I);add(I1,I2,dst,mask,dtype);scaleAdd(I1,scale,I2,dst);//dst=scale*I1+I2;2.减法absdiff(I1,I2,I);//I=|I转载 2016-11-24 10:59:34 · 5113 阅读 · 0 评论 -
算术平均、几何平均、调和平均、平方平均和移动平均
本文内容算术平均 几何平均 调和平均 平方平均 移动平均 参考资料 算术平均、几何平均、调和平均、平方平均和移动平均跟计算编程有什么关系:Just One Word,不能只会算术平均数,还有其他很多选择,以及不同场景使用不同的平均数。算术平均算术平均(Arithmetic mean)是最基本、最常用的一种平均指标,描述数据集中趋势的一个统计指标。计算公式为:转载 2016-05-24 17:20:03 · 9294 阅读 · 1 评论 -
C++ 读取中文文本 ifstream
#include #include #include #include #include using namespace std;int main(){ string str = ""; wchar_t wch = '中'; char ch = 'b'; cout<<"char : "<<ch<<wch<<endl; char filenam原创 2015-03-05 16:57:50 · 5081 阅读 · 0 评论 -
C++ BYTE 和 int 互转
byte不是一种新类型,在C++中byte被定义的是unsigned char类型;但在C#里面byte被定义的是unsigned int类型//int转bytevoid intToByte(int i,byte *bytes,int size = 4){ //byte[] bytes = new byte[4]; memset(bytes,0,si转载 2015-03-04 15:13:29 · 10949 阅读 · 0 评论 -
C++ 位运算
什么是位(bit)? 很简单,位(bit)就是单个的0或1,位是我们在计算机上所作一切的基础。计算机上的所有数据都是用位来存储的。一个字节(BYTE)由八个位组成,一个字(WORD)是二个字节或十六位,一个双字(DWORD)是二个字(WORDS)或三十二位。如下所示: 0 1 0 0 0 1 1 1 1 0转载 2015-03-02 10:40:01 · 586 阅读 · 0 评论 -
VS2010 + QT5 SerialPort 串口应用实例总结
原文链接:希望转发者保留。VS2010 + QT5 SerialPort 下面代码的关键两个地方,就是读和写两个位置,因为串口是不稳定的,所以必须以这种方式来收发。#include "stdafx.h"#include "serialporttesttool.h"SerialPortTestTool::SerialPortTestTool(QWidget *parent) : QMainWindow(parent)原创 2015-02-03 11:02:53 · 9712 阅读 · 5 评论 -
MFC 执行CMD命令 利用管道技术读取输出内容
MFC执行CMD命令并获得其返回信息源代码MFC执行CMD命令并获得其返回值。原理是利用管道技术,创建一个进程执行cmd命令,并将其返回信息存入管道中,再读出管道中的命令即可。以下是我封装的一个函数,参数是要执行的CMD命令,多个命令之间用“&”号隔开,函数的返回值就是执行命令的返回信息。格式均为CString格式。CString CTESTDlg::ExecuteCmd(CString转载 2014-10-06 16:50:24 · 6792 阅读 · 5 评论 -
bat 常用命令大全 及 解析
一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。 语法 echo [{on│off}] [message] Sample:@echo off / echo hello world 在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入转载 2014-08-07 23:30:32 · 8751 阅读 · 0 评论 -
UniCode 下 CString 转 char* 的方法
如果vs1、Unicode下CString转换为char *方法一:使用API:WideCharToMultiByte进行转换 CString str = _T("D://校内项目//QQ.bmp"); //注意:以下n和len的值大小不同,n是按字符计算的,len是按字节计算的 int n = str.Get转载 2014-09-24 14:39:20 · 709 阅读 · 0 评论 -
获取磁盘列表以及磁盘信息的一些WIN32 API
转自:http://www.cnblogs.com/imlee/archive/2007/09/26/906323.html 1.获取所有的驱动器利用函数GetLogicalDriveStringsThe GetLogicalDriveStrings function fills a buffer with strings that specify valid dr转载 2014-05-05 09:09:06 · 989 阅读 · 0 评论 -
Git 忽略那些冗余的文件
1,在工作目录点右建选择2,输入touch .gitignore 在工作目录就生成了一个“.gitignore”文件。3,然后在”.gitignore” 文件里输入你要忽略的文件夹及其文件就可以了。 内容如下:.DS_Store /_ReSharper.****/ 就这么简单搞定。-------------------------------转载 2014-04-15 20:22:19 · 1582 阅读 · 0 评论 -
C++ 编写DLL 动态及静态调用DLL方法
在网上搜集了很多关于这方面的 资料,方便自己以后用到。http://www.cnblogs.com/RascallySnake/p/3182807.htmlhttp://blog.csdn.net/net_wolf_007/article/details/5182376http://blog.csdn.net/yysdsyl/article/details/2626033原创 2014-03-19 11:46:47 · 1435 阅读 · 0 评论 -
DirectShow系统设备的枚举
步骤:1.使用CoCreateInstance函数创建系统枚举器组件对象,并获得ICreateDevEnum接口;2.使用接口方法ICreateDevEnum::CreateClassEnumerator为指定的Filter注册类型目录创建一个枚举器,并获得IEnumMoniker接口;3.使用IEnumMoniker接口方法枚举指定类型目录下所有设备标识4.调用IMonike转载 2013-08-26 16:22:44 · 1255 阅读 · 0 评论 -
Opencv中的ROI介绍
Opencv中的ROI介绍ROI(Region of Interest)是指图像中的一个矩形区域,可能你后续的程序需要单独处理这一个小区域,如图所示如上图所示,就是ROI的一个例子,如果你对图像设置了ROI,那么,Opencv的大多数函数只在该ROI区域内运算(只处理该ROI区域),如果没设ROI的话,就会出来整幅图像。ROI非常有用,例如我们想把图像中的人脸扣出来,进转载 2013-08-07 08:23:55 · 2401 阅读 · 0 评论 -
函数setlocale()的介绍与单字符宽字符的互相转换
函数: setlocale()语法:string setlocale(string category, string locale);用法说明:本函数用来配置地域的信息。参数 category 有下列的选择: LC_ALL 包括下面的全项选项都要。 LC_COLLATE 配置字符串比较,PHP 目前尚未实作出来本项。 LC_CTYPE 配置字符类别及转换。例如全变大写str转载 2013-08-03 09:15:43 · 1214 阅读 · 0 评论 -
C++生成GUID
//--生成GUID的代码//--相关程序/微软guidgen.exe#include "stdafx.h"#include #include //--生成GUIDconst char* newGUID(){ static char buf[64] = {0}; GUID guid; if (S_OK == ::CoCreateGuid(&guid)) { _snpr转载 2013-07-01 14:11:35 · 3916 阅读 · 0 评论 -
MFC多线程各种线程用法 .
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为 IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下: void CSingleThreadDlg::OnSleepSixSecond() {Sl转载 2013-07-15 09:08:20 · 41135 阅读 · 10 评论 -
关于 DirectShow 中各个例子的编译转换问题
那些项目都是老旧的VC2003的,转换成05、08后,会有一系列编译问题,具体操作如下:1. 首先要安装 DirectX SDK 和 Windows SDK,两个版本最好是相对应的,一致的,不能一个旧一个新。2. 首先要编译基本库 BaseClasses, 编译时会遇到 ctlutil.h 中 operator=(LONG); 这一句不支持默认int的问题,这时需要在C/C++下的命令行添转载 2013-07-13 23:49:05 · 727 阅读 · 0 评论 -
C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast 声明:本文转自:CSDN修改了其中的一处笔误:reinterpret_cast 错写成reinpreter_cast===================================================使用标准C++的类型转载 2013-07-09 15:35:50 · 569 阅读 · 0 评论 -
COM笔记-QueryInterface函数
客户同组件的交互都是通过一个接口完成的。在客户查询组件的其他接口时,也是通过接口完成的。这个接口就是IUnknown。它在UNKNWN.H头文件定义 :如下 Interface IUnknown { virtual HRESULT __stdcall QueryInterface( REFIID riid, void *转载 2013-06-18 09:20:50 · 663 阅读 · 0 评论 -
DoDataExchange()
我不清楚,但好像这个引用解释的不错:http://k.pconline.com.cn/question/1686411.html 对于这个函数,MSDN是这样描述的:Called by the framework to exchange and validate dialog data.大意是框架调用此函数来改写与确认对话框数据。 反正我没明白这句话的意思。 到是看了下DoDa转载 2013-06-15 09:32:53 · 883 阅读 · 0 评论 -
标准C---关于字符串操作
字符串操作是常用的操作之一,下面是相关的函数介绍和相关注意的地方,一、strtok查找函数,这个函数改变了源字符串,而且第一个参数必须是数组,不能是指针或字符串,如果是指针或字符串,则会报异常,直接返回NULL.如果不想改变源字符串的内容,建议用strstr来查找子串。其他常用的查找函数有strchr和strrchr,前者在字符在字符串第一次出现的位置,后者则是查询的是字符在字符串中出现的转载 2013-06-03 13:37:38 · 832 阅读 · 0 评论 -
C/C++中指针和引用之相关问题研究
一、基本知识指针和引用的声明方式:声明指针: char* pc;声明引用: char c = 'A' char& rc = c;它们的区别:①从现象上看,指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。这句话可以理解为:指针可以被重新赋值以指向另一个不同的对象。但是引用则总是指向在初始化时被指定的对象,以后不能改变,转载 2013-09-09 09:19:25 · 769 阅读 · 0 评论 -
C++类中拷贝构造函数详解
a. C++标准中提到“The default constructor, copy constructor and copy assignment operator, and destructor are special member functions.[Note: The implementation will implicitly declare these member functions转载 2013-09-09 10:10:59 · 1696 阅读 · 0 评论 -
C++ 回调函数 机制
对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。 什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。 为什转载 2013-09-09 14:57:40 · 909 阅读 · 0 评论