自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(142)
  • 收藏
  • 关注

转载 有符号/无符号不匹配

点击打开原文地址出错代码: for(int j=0;j<detector.size();j++)出错原因分析: detector 是一个Vector容器 ,detecot.size() 在容器说明中 被定义为: unsigned int 类型, 而j是int 类型 所以会出现: 有符号/无符号不匹配警告错误改正: 定义j为unsigned类型后就可以了即: for(unsigned i...

2018-09-30 09:45:47 2346

转载 内核对象

点击查看原文何为内核:        1、内核是操作系统最基本的部分。        2、内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础, 它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。        3、现代操作系统设计中,为减少系统本身的开销,往往将一些与硬件紧密相关的(如中断处理程序、...

2018-09-20 09:50:29 356

转载 C++进阶—> CloseHandle详解及CloseHandle后线程未停

点击打开原文​​​​​​​函数说明BOOL CloseHandle(HANDLE hObject);参数hObject :代表一个已打开对象handle。返回值TRUE:执行成功;FALSE:执行失败,可以调用GetLastError()获知失败原因。 函数用于关闭一个内核对象。 CloseHandle到底做了什么?当调用CloseHandle成功后,相关的内...

2018-09-19 17:35:30 787

原创 C++ 正则表达式 判断字符串是否是字母或数字

头文件#include <regex>程序tr1::regex reg("^[0-9a-zA-Z]+$");string search_string="AsWamplek3fj123";bool bValid=tr1::regex_match(search_string, reg);返回值为TRUE

2018-09-10 20:03:42 8939

原创 MFC按钮添加字

LOGFONT lfFontPaper = CFunctions::GetDefaultFont(); lfFont.lfHeight = -15; lfFont.lfWeight |= FW_BOLD; Gdiplus::Font font(dcMem.GetSafeHdc(), &lfFontPaper); SolidBrush br...

2018-08-29 09:46:53 538

转载 VS2008新建的MFC对话框添加OnInitDialog()函数

点击打开原文链接 第一步:打开类视图。如下:第二部:单击选中要添加初始函数的类。在看对应的属性框,如下图:点击第六个重载图标(小方块既是),找到OnInitDialog,点击添加,完成子对话框的OnInitDialog函数的添加!...

2018-08-01 14:18:31 1902

转载 防止MFC应用程序重复打开

点击打开原文链接在APP类的InitInstance()的最前面加入以下代码,建立互斥区,可防止进程的重复启动。 BOOL CReadOracleDBApp::InitInstance() { HANDLE hObject = CreateMutex(NULL,FALSE,_T("CReadOracleDBApp")); if(GetLastError() == ERROR_...

2018-07-31 16:00:44 1254

转载 HTTP与HTTPS的区别

点击打开原文链接超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。  为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTP...

2018-07-30 11:24:11 215

转载 项目发布Debug和Release版的区别

点击打开原文链接一、Debug和Release的区别  Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试。Debug模式下生成两个文件,除了.exe或.dll文件外,还有一个.pdb文件,该文件记录了代码中断点等调试信息   Release:发布版本,不对源代码进行调试,编...

2018-07-30 11:07:06 235

原创 查询电脑硬盘序列号

cmdwmic diskdrive get serialnumber

2018-06-05 17:11:12 10975 2

转载 设置应用程序开机启动

点击打开原文链接亲测,可用。

2018-05-23 10:15:18 364

转载 远程桌面链接如何设置不需要密码登陆

点击打开原文链接我的电脑 -右键-属性-远程-复选框允许远程链接到此计算机勾上开始菜单中,选择“运行”,输入“secpol.msc”启用“本地安全设置”;选择“安全设置”;选择“本地策略”;在“安全选项”的右窗口中,找到“账户:使用空白密码的本地账户只允许进行控制台登录”,双击...

2018-05-23 10:12:13 11768

转载 浅谈 TCP 三次握手和四次挥手

点击打开原文链接一、tcp协议格式二、三次握手在 TCP/IP 协议中,TCP 协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送 syn 包(tcp协议中syn位置1,序号为J)到服务器,并进入 SYN_SEND 状态,等待服务器确认; 第二次握手:服务器收到 syn 包,必须确认客户的 SYN,同时自己也发送一个 SYN 包,即 SYN+ACK包(tcp协议...

2018-05-22 18:10:04 176

转载 项目发布Debug和Release版的区别

点击打开原文链接 一、Debug和Release的区别  Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试。Debug模式下生成两个文件,除了.exe或.dll文件外,还有一个.pdb文件,该文件记录了代码中断点等调试信息   Release:发布版本,不对源代码进行调试,编译时对应用...

2018-05-11 11:16:41 217

转载 Windows 下 C++ 编程获取当前时间

点击打开原文链接、Windows 下 C++ 编程获取当前时间1、包含头文件<time.h>2、定义两个变量:time_t sysTime;struct tm localTime;3、获取时间:time(&sysTime);4、转换为本地时间:localtime_s(&localTime, &sysTime);5、解析时间:char str[100]; //...

2018-05-10 21:37:00 923

转载 (_TCSRCHR(SZFILEPATH, _T('\\')))[1] = 0

点击打开原文链接char szFilePath[MAX_PATH]; GetModuleFileName(NULL, szFilePath, MAX_PATH); (_tcsrchr(szFilePath, _T('\\')))[1] = 0;这是一段获得程序当前目录的一段代码这段代码很简单,唯一有点难度的就是最后一句(_tcsrchr(szFilePath, _T('\\')))[1]...

2018-05-10 09:15:55 694

原创 Windows Socket编程所需头文件

#include <winsock2.h>#pragma comment(lib,"Ws2_32.lib")

2018-05-09 12:25:06 6414 2

转载 setsockopt用法详解

点击打开原文链接1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesocket后强制...

2018-05-09 09:48:22 218

转载 recv、send函数windows下超时设置

点击打开原文链接    在socket通讯中,如果不设置超时时间的话,recv和send函数都会一直无限阻塞在那等待接受数据,为了防止出现这种情况,需要设置超时时间,windows下是这样设置超时时间。int recvTimeout = 30 * 1000; //30sint sendTimeout = 30 * 1000; //30s setsockopt(sClient, SOL_...

2018-05-09 08:57:50 4525 1

转载 C++删除某个特定的进程

点击打开原文链接总结一个删除某个进程的函数,实现类似于在任务管理器中关闭某个进程的功能。 引用头文件:#include <TlHelp32.h>BOOL KillProcessFromName(CString strProcessName) { //创建进程快照(TH32CS_SNAPPROCESS表示创建所有进程的快照) HANDLE hSnapSho...

2018-05-08 15:47:17 532

转载 获取时间戳

点击打开原文链接 SYSTEMTIME tmSys; GetLocalTime(&tmSys); CTime tm3(tmSys); __int64 tmDst = __int64(tm3.GetTime())*1000 + tmSys.wMilliseconds;tmDst 就是所要的时间戳数据 c++是以毫秒没为单位。...

2018-05-08 14:15:44 519

转载 socket()函数介绍

点击打开原文链接函数原型socket()函数的原型如下,这个函数建立一个协议族为domain、协议类型为type、协议编号为protocol的套接字文件描述符。如果函数调用成功,会返回一个标识这个套接字的文件描述符,失败的时候返回-1。#include<sys/types.h>#include<sys/socket.h>int socket(int domain, in...

2018-05-07 10:33:46 24769

转载 客户端到服务器端的通信过程

点击打开原文链接socket的英文原义是“孔”或“插座”。作为进程通信机制,取后一种意思。通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。(其实就是两个程序通信用的。)socket非常类似于电话的插座。以一个电话网为例。电话的通话双方相当于相互通信的2个程序,电话号码可以当作是IP地址。任何用户在通话之前,首先要占有一部电话机,相当于申请一个socket;同时要知道对方的号码(I...

2018-05-07 10:12:40 370

转载 使用 ShellExecute 打开文件或执行程序

点击打开原文链接使用 ShellExecute 打开文件或执行程序可以使用 ShellExecute 打开文件或执行程序。原型:HINSTANCE ShellExecute( _In_opt_ HWND hwnd,//父窗口句柄或出错时显示错误父窗口的句柄,可以为 NULL _In_opt_ LPCTSTR lpOperation,//操作 _In_ LPCTSTR lp...

2018-05-04 17:45:17 4044

转载 ShellExecuteEx调用第三方程序

点击打开原文链接调用第三方程序有很多方法, 包括system , WinExec , CreateProcess, ShellExecute, ShellExecuteEx。对比这几个启动进程的函数, 总结下来功能完善而且好用的就是ShellExecuteEx函数了。 这个函数不仅可以传入参数到第三方而且能够传回进程句柄用于操作, 比如等待第三方程序执行完毕。 CreateProcess也可以做到...

2018-05-04 14:19:31 5923 1

转载 error C2065: “CString”: 未声明的标识符

点击打开原文链接在非mfc下 使用CString 会导致上面错误:解决办法:(1) 如果你使用VC.net那么:使用MFC:包含cstringt.h;(2) 不使用MFC:包含atlstr.h   或者 #include <afx.h>...

2018-05-04 14:09:36 1737

原创 VS2008 C++ 获取exe文件所在路径

TCHAR szFilePath[MAX_PATH + 1] = { 0 };GetModuleFileName(NULL, szFilePath, MAX_PATH);(_tcsrchr(szFilePath, _T('\\')))[1] = 0;TCHAR转换为char*:char* ConvertLPWSTRToLPSTR (LPWSTR lpwszStrIn) { LPSTR...

2018-05-04 09:39:23 691

转载 ControlService

点击打开原文链接BOOL WINAPI ControlService(_In_ SC_HANDLE hService,_In_ DWORD dwControl,_Out_ LPSERVICE_STATUS lpServiceStatus);函数作用:给指定的服务发送一个控制码参数:1. hService: OpenService 或CreateService function返回的服务句柄;2. ...

2018-05-03 18:23:25 1121

转载 QueryServiceStatus

点击打开原文链接BOOL WINAPI QueryServiceStatus(_In_ SC_HANDLE hService,_Out_ LPSERVICE_STATUS lpServiceStatus);函数作用:获取指定驱动的当前状态参数:1. hService:服务句柄, OpenService 或 CreateService 的返回值获得,需要用SERVICE_QUERY_STATUS权限...

2018-05-03 18:14:18 1274

转载 驱动加载之OpenService

点击打开原文链接SC_HANDLE WINAPI OpenService(_In_ SC_HANDLE hSCManager,_In_ LPCTSTR lpServiceName,_In_ DWORD dwDesiredAccess);函数作用:打开一个已经存在的服务参数:1. hSCManager:SCM数据库句柄;OpenSCManager2. lpServiceName:要打开服务的名字,这...

2018-05-03 18:13:03 432

转载 服务控制程序

点击打开原文链接一:服务控制程序概要服务控制程序的编写与标准的Windows应用程序无异,它要用到服务管理函数,如:OpenSCManager、OpenService、QueryServiceConfig、StartService、QueryServiceStatus、ControlService等;它都在系统的advapi32.dll中实现。在使用SCM的函数时,SCP必须要首先调用OpenSC...

2018-05-03 15:35:29 978

转载 CloseHandle()函数的使用

点击打开原文链接CloseHandle()函数的使用??很多程序在创建线程都这样写的:............ThreadHandle = CreateThread(NULL,0,.....);CloseHandel(ThreadHandle );。。。。。这不是刚好创建又关闭了吗?线程怎么运行呢?================================================1,...

2018-05-02 16:36:20 938

原创 子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码。

#include <Windows.h>#include <iostream>#include <process.h>UINT __stdcall ThreadFun(LPVOID lparam);CRITICAL_SECTION gVar;int gMain = 0;int gThread = 0;int main(){ Initial...

2018-04-26 19:23:53 307

转载 一个全局变量tally,两个线程并发执行(代码段都是ThreadProc),问两个线程都结束后,tally取值范围。

点击打开原文链接代码:int tally = 0;//glablevoid ThreadProc(){ for(int i = 1; i <= 50; i++) tally += 1;}答案:[50,100]解析:tally += 1 分为三条指令:(1)tally内存进入寄存器;(2)寄存器加1;(3)寄存器数据放回内存tally;...

2018-04-26 14:15:34 3343

转载 多线程同步和互斥有什么异同?

点击打开原文链接线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。线程互斥是指对于共享的进程系统资源,在各单个线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其它要使用该资源的线程必须等待,直到占用资源者释放该资源。线程互斥可以看成是一种特殊的线程同步。线程同步一般...

2018-04-26 10:29:59 2900

转载 多线程同步和互斥有哪几种实现方法?

点击打开原文链接线程间的同步方法大体可分为两类:用户模式和内核模式。顾名思义,内核模式就是指利用系统内核对象的单一性来进行同步,使用时需要切换内核态与用户态,而用户模式就是不需要切换到内核态,只在用户态完成操作。用户模式下的方法有:原子操作(例如一个单一的全局变量),临界区。内核模式下的方法有:事件,信号量,互斥量。1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问...

2018-04-26 10:22:57 8595 1

原创 多线程有几种实现方法都是什么?

多线程有两种实现方法,如下所示:一:继承Thread类,重写方法run();二:实现Runnable接口,实现方法run();

2018-04-26 10:01:05 1936 1

转载 线程和进程的区别是什么?

点击打开原文链接网友一:作者:zhonyong链接:https://www.zhihu.com/question/25532384/answer/81152571来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。首先来一句概括的总论:进程和线程都是一个时间段的描述,是CPU工作时间段的描述。下面细说背景:CPU+RAM+各种资

2018-04-26 09:53:12 597

转载 通俗讲解模态弹框和非模态弹框

原文地址:点击打开链接弹框是一种重要的交互方式,主要用于完成信息传递和用户反馈两大功能。弹框很常见,但并不见的每一个设计师都可以100%的弄明白弹框这个概念。这篇文章是对弹框体系的一个简单梳理和总结,希望可以解决大家心中的一些疑惑。    我们日常所说的弹框是一个很笼统的概念。所有的对话框,浮层,提示条我们都习惯性的称之为弹框,其实弹框我们可以分为两种:模态弹框和非模态弹框。  模态弹框  模态弹...

2018-04-11 20:48:32 7410 1

转载 线程锁的概念函数EnterCriticalSection和LeaveCriticalSection的用法

原文地址:点击打开链接开发环境:win7,vs2008定义一个全局的锁CRITICAL_SECTION的实例和一个静态全局变量。CRITICAL_SECTION cs;//可以理解为锁定一个资源static int n_AddValue = 0;//定义一个静态的全部变量n_AddValue头文件#include <stdio.h>#include <afxwin.h>...

2018-04-11 20:22:09 264

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除