![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
落丁丁
这个作者很懒,什么都没留下…
展开
-
使用Winring0
项目中需要查询CPU温度,所以用到winring0.dll,需要知道自己系统是32位还是64位,然后选择winring032.dll还是winring064.dll.使用步骤:1.在项目生成执行文件的目录下放入dll文件(WinRing0x32.dll/WinRing0x64.dll)以及sys文件(WinRing0x32.sys/WinRing0x64.sys)2.在cpp源文件中包含头文件“OlsApiInit.h”以及“OlsDef.h”3.工程项目设置为管理员权限:项目右击->项目属性原创 2020-07-16 10:53:46 · 4794 阅读 · 2 评论 -
查看某个端口的连接数
Linux:netstat -nat | grep -i “端口号” | wc -lwindows:netstat -ant | find “端口号” >d:\a.txt或netstat -aon | findstr “端口号”原创 2020-07-16 10:37:44 · 1426 阅读 · 0 评论 -
一个封装好的线程类
一个封装好的线程类一.创建线程函数常用的创建线程的函数是CreateThread,还有MFC中的AfxBeginThread方法.另一种函数是_beginthreadex,其实它在内部调用了CreateThread,在调用之前_beginthreadex做了很多的工作,从而使得它比CreateThread更安全.所以一般使用_beginthreadex来创建线程.于是以下使用_beginthreadex函数来创建线程类.二.线程类示例1.Thread.h文件如下:#ifndef _THREAD转载 2020-07-16 10:25:28 · 162 阅读 · 0 评论 -
静态链接库与动态链接库使用详解
静态链接库与动态链接库使用详解一.静态库用通俗的话讲,静态库就是将代码编译到一个二进制文件下(通常扩展名为.LIB).然后客户端调用程序,只需要包含相关的.h文件及LIB库文件一起链接到exe文件中.可执行程序发布后,不再需要该.lib文件了.二.动态库最终将编译出.lib与.dll文件. 注意.lib文件与上面的静态库虽然扩展名相同,但有本质的区别.动态库中的lib文件是动态库的引入库. 该引入库包含被DLL导出的函数和变量的"符号名".而静态库中的.lib包含了函数和数据,动态库的函数和转载 2020-07-16 10:24:46 · 367 阅读 · 0 评论 -
DEBUG和RELEASE版本差异及调试相关问题
[转]DEBUG和RELEASE版本差异及调试相关问题Debug和Release有什么区别?怎么把Debug转成Release ?1。Debug和Release有什么区别,为什么要使用Release版本!2。怎么把Debug转成Release转载:Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MF转载 2020-07-16 10:23:49 · 726 阅读 · 0 评论 -
CoInitializeEx
函数说明:CoInitializeEx是 Windows提供的API函数,为当前线程初始化COM库并设置并发模式 。应用程序调用com库中的函数(除CoGetMalloc和内存分配函数)之前必须初始化com库。函数原型HRESULT CoInitializeEx(void * pvReserved,DWORD dwCoInit);参数介绍:pvReserved系统 保留的参数,必须传入 NULL.dwCoInit该标示指明基于当前线程的并发模式和初始化选项。该参数是 COINIT 枚举转载 2020-07-16 10:22:27 · 1115 阅读 · 1 评论 -
深入MFC中WM_COMMAND的传递
MFC将windows消息系统进行了高度的抽象和封装,其根本原理是运用C++的高级特性并结合一定的设计模式(如工厂模式,模板方法等)来实现的。一般的windows消息(WM_XXX),则一定是由派生类流向基类,没有旁流的可能。如果是命令消息(WM_COMMAND),那就有比较奇特的路线了。下面就针对多文档/单文档(Document-View)、对话框两种应用程序比较讨论WM_COMMAND消息的传递处理过程。讨论前首先得明确命令消息的来源,命令消息一般是用户选择某个菜单项,或一个加速键被翻译,或一个子控件发转载 2020-07-16 10:23:30 · 375 阅读 · 0 评论 -
_set_invalid_parameter_handler异常处理函数
_set_invalid_parameter_handler异常处理函数VS2005之后的版本,微软增加了一些新的异常机制,新机制在出现错误时默认不通知应用程序,这时程序就崩溃了。所以这种情况下,必须调用_set_invalid_parameter_handler、_set_purecall_handler设置自己的异常处理函数。以下示例代码:// test.cpp// compile with: /Zi /MTd// C++ Exceptions : /EHa#include <st转载 2020-07-16 10:26:05 · 1149 阅读 · 0 评论 -
监测内存越界
监测内存越界#ifndef _CHECKMEMOVERFLOW_H_#define _CHECKMEMOVERFLOW_H_#define CHECK_MEM_OVERFLOW#ifdef CHECK_MEM_OVERFLOW//操作系统内存分配粒度为页面(4K)#define PAGE_SIZE 4096#define PLATFORM_WIN32#ifdef PLATFORM_WIN32#include <stdlib.h>#include <windows.转载 2020-07-16 10:26:23 · 136 阅读 · 0 评论 -
EA类的关系
EA类的关系Enterprise Architect中定义的关系主要有一下几种:●Associate(关联):类之间有关联,通常是作为变量存在;●Aggregate(聚合):类A包含类B或由类B组成;●Compose(组合):类A是由其他类组成;●Dependency(依赖):类A需要类B的协助,类B变化会影响类A,反过来不成立;●Generalize(泛化):一般到具体的关系;●Realize(实现):类A实现类B;注意:其中,聚合,组成属于关联关系,泛化关系表现为继承或实现关系(is a转载 2020-07-16 10:26:37 · 1638 阅读 · 0 评论 -
关于套接字read/write的返回值
**关于套接字read/write的返回值目录标题**1、阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 <0:出错,=0:连接关闭,>0接收到数据大小,特别:返回值 <0时并且(errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN)的情况下认为连接是正常的,继续接收。只是阻塞模式下recv会阻塞着接收数据,非阻塞模式下如果没有数据会返回,不会阻塞着转载 2020-07-16 10:26:48 · 1160 阅读 · 0 评论