前言一直想研究一种监控进程的方法,但wmi/枚举进程wmi/枚举进程的方法,要么反应太慢,要么占用高。最近看到有人用易语言易语言完成了Etw对进程变动监控的实现。但是一直没看到C++C++的实现,于是决定将易语言易语言翻译为C++C++。代码直接上翻译的代码#include <iostream>#include <stri
今天是接触C++的第二天,学习了基础内容之后用了两个多小时的时间完成了一个通讯录管理程序,功能相对简单,代码也不复杂,欢迎各位大佬指出不足之处点击查看代码#include<iostream>#include<string>#include<regex>using namespace std;struct PhoneNumber{ string name;//姓名 string se
正文为什么有动态类型呢?是因为很多东西天生就是动态类型的。比如xml 和 json、cvs、数据库表,这些本来就是数据类型的。在反射系列中提及到,为什么有发送呢? 是因为只有在运行的时候你才能知道他是什么类型。同样的xml、json这些也是只有运行的时候才知道他有什么样的类型,当我们加载xm
继承概念:继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。语
一、序言在日常一线开发过程中,总有列表转树的需求,几乎是项目的标配,比方说做多级菜单、多级目录、多级分类等,有没有一种通用且跨项目的解决方式呢?帮助广大技术朋友给业务瘦身,提高开发效率。本文将基于Java8的Lambda 表达式和Stream等知识,使用TreeUtils工具类实现一行代码完成列表转
那什么是值,什么是引用?大体可以理解为堆栈的区别,在.net中大多数实例存在于托管堆栈中。struct,int32,int64,double,enum等数据类型声明的实例存在栈中,而string,class,delegate等存在于堆中。前者一般称为值类型,后者则叫做引用类型,那么引用类型和值类型在内存中 ref修饰入参的常用场景当我
运算重载符概念: 运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。函数原型:返回值 operator操作符(参数列表)注意: 运算符重载,就是对已有的运算符重新进行定义,赋予其另外一种功能,以适应不同的数据类型 不能通过重载操
使用 REST/HTTP 的请求-响应通信简单易懂,并且受到大多数技术、产品和 SaaS 云服务的支持。相比之下,Apache Kafka 的数据流是对数据连续处理的根本改变。HTTP 和 Kafka 以各种方式相互补充。这篇文章探讨了架构和用例,以利用控制平面中的请求-响应和数据流进行管理,或利用数据平面中的
在日常业务代码开发中,我们经常接触到AOP,比如熟知的Spring AOP。我们用它来做业务切面,比如登录校验,日志记录,性能监控,全局过滤器等。但Spring AOP有一个局限性,并不是所有的类都托管在 Spring 容器中,例如很多中间件代码、三方包代码,Java原生代码,都不能被Spring AOP代理到。如此一来,一
一、非阻塞同步重排序与缓存我们观察下面这个例子:public class Foo{ private int _answer; private bool _complete; void A() //A 1 { _answer = 10; _complete = true; } void B() //B 2 { if (_complete) Console.WriteLine(_answer)
从 2018 年 2 月 28 号发布 Spring Boot 2.0 版本开始,整个 2.X 版本已经经过了 4 年多的时间,累计发布了 95 个不同的版本,而就在前不久,2.X 系列的也已经迎来了他的最终版本:2.7。前几天我还写了一篇关于 Spring Boot 从 2.1 版本升级到 2.7 的文章,而现在,Spring Boot 3.0 也要来了!时间
c++提供两种模板机制:函数模板和类模板函数模板建立一个通用函数,函数的返回值类型和形参类型可以不具体指定,用一个虚拟的类型来代表语法: cpptemplate<typename T> //或者template<class T>函数声明或定义当使用class的时候,如果T有子类,编译器会认为是声明,所以还是使用typename
前言循环允许我们通过循环数组或对象中的项并做一些事情,比如说打印它们,修改它们,或执行其他类型的任务或动作。JavaScript有各种各样的循环,for循环允许我们对一个集合(如数组)进行迭代。在这篇文章中,我们将了解JavaScript提供的for循环。我们将看看for...in循环语句是如何在JavaScript
概述在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。举个例子:#include <stdio.h>#inclu
前言作为.net程序员,使用过指针,写过不安全代码吗?为什么要使用指针,什么时候需要使用它,以及如何安全、高效地使用它?如果能很好地回答这几个问题,那么就能很好地理解今天了主题了。C#构建了一个托管世界,在这个世界里,只要不写不安全代码,不操作指针,那么就能获得.Net至关重要的安全保障,即什
C# 部分环境要求SDK:.NET 7 SDK、Desktop development with C++ workload。IDE:Visual Studio 2022Desktop development with C++ workload 是一个工具集,里面包含 C++ 开发工具,需要在 Visual Studio Installer 中安装,如下图红框中所示。创建一个控制台项目首先创建一个 .NET 7 控制台
学习新东西在编写了一点代码后,我创建了一个草稿拉取请求。我不断将所有更改推送到草稿拉取请求,直到它准备好供存储库所有者审查。通过远程查看和测试代码我今天了解了GitHub的另一个有趣的功能:Remotes。我花了一些时间来习惯使用遥控器。最初,我在尝试 git add remote 时遇到错误,因
一、前言 最近老师要求做课设,实现一个 “炸飞机” 游戏,我是负责UI界面实现和Socket通信实现的,在这里想总结一下我实现Socket的具体过程,对其中的产生的问题和实现的方法进行进行分析。由于我是第一次具体实现Socket通信,所以走了不少弯路,请教了许多人,其中尤其是我的舍友,对
一:volatile关于volatile的功能无非是两个: 1:保证保证线程间变量的可见性 2:防止指令重排序 下面我们就从字节码层面,JVM层面,CPU层面来解析是如何做到的。1:字节码层面首先编写一个很简单的类:public class TestVolatile { int i; volatile int j;}编译并查看字节码: 由此可知:在字节
最近做一个C++开源项目发现一个奇怪问题,通过clang编译链接执行程序每到有一个就崩溃了,gcc下则没有此问题。后来通过调试,发现原因是bool返回的方法是没有return语句!问题是为啥还能通过编译呢?#include <iostream>class Test {public: bool yes();};bool Test::yes() { std::cout <<
实现代码主要还用到 C++11提供了对匿名函数的支持,称为Lambda函数(也叫Lambda表达式) 实现直接在插入的时候:函数指针直接用Lambda表达式 CReflectRegister.h#pragma once#include <string>#include <map>#include "CReflectBase.h"//把类名添加到map#define ADD_CLASS_REGISTER(cla
Java EE、Java SE和Java ME的区别Java SEJava SE(Java Platform,Standard Edition)。JavaSE以前称为J2SE.它允许开发和部署在桌面、服务器、嵌入式环境和实施环境中使用的Java应用程序。JavaSE 包括支持Java Web服务开发的类,并为Java Platform,Enterprise Edition(Java EE)提供基础
分析在CC1中,我们说可以利⽤TransformedMap执⾏任意Java⽅法;public class CommonCollections1 { public static void main(String[] args) throws Exception { Transformer[] transformers = new Transformer[]{ new ConstantTransformer(Runtime.getRunti
今天再次回顾了一些关于java IO流的知识。虽然以前会点IO的方面的编程,但是还是知其然不知其所以然。首先上一张IO流的主要家族图吧。该图给出了IO流的具体分类和各类之间的继承关系。其中还给出了各个类的使用场景和用途。一、IO流的主流分类IO流主要分为字节流和字符流。它们之间