USB中文网 USB中文网
3年前
USB中文网之虚拟鼠标功能演示
该功能是USB中文网的开发例程,其设计原理见:使用驱动程序实现的是虚拟USB鼠标功能。鼠标的事件由应用应用层下发:当前完成的功能:鼠标指针的移动鼠标的点击事件动态创建和销毁鼠标设备支持WIN7,WIN10X64,X86使用WDM框架开发应用层是VS2019编译驱动,生成驱动文件,然后再使用批处理调用devcon.exe安装
cpp加油站 cpp加油站
3年前
c++动态分配浅析
1.c语言中动态分配和释放在c中,申请动态内存是使用malloc和free,这两个函数是c的标准库函数,分配内存使用的是系统调用,使用它们必须包含stdlib.h,才能编译通过。malloc后需要检查内存是否分配成功,free则要在指针不为空的情况下才能进行。示例代码如下:cinclude<stdio.hinclude<stdlib.hinclude
待兔 待兔
3年前
Java多态实现原理
Java多态概述多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。Java对于方法调用动态绑定的实现主要依赖于方法表,但通过类引用调用(invokevirtual)和接口引用调用(invokeinterface)的实现则有所不同。类引用调用的大致过程为:Java编译器将Java源代码编译成c
Wesley13 Wesley13
3年前
C++中基类虚析构函数的作用及其原理分析
虚析构函数的理论前提是执行完子类的析构函数,那么父类的虚构函数必然会被执行。那么当用delete释放一个父类指针所实例化的子类对象时,如果没有定义虚析构函数,那么将只会调用父类的析构函数,而不会调用子类的虚构函数,导致内存的泄漏。故: 继承时,要养成的一个好习惯就是,基类析构函数中,加上virtual。知识背景     
Wesley13 Wesley13
3年前
DLL如何导出类?
其实最好是写一个父类,把要实现的函数全部以虚函数的形式写在父类中,然后写一个子类,继承父类,重写父类的虚函数。这样的话就安全得多了。其次就在DLL中导出一个函数,返回父类的一个对象指针,再在EXE中动态链接DLL,调用导出函数。例子如下://以下是DLL的代码//class\_a.hclass A{public:
Wesley13 Wesley13
3年前
C++ 什么时候调用析构函数
析构函数是在对象消亡时,自动被调用,用来释放对象占用的空间。有四种方式会调用析构函数:1.生命周期:对象生命周期结束,会调用析构函数。2.delete:调用delete,会删除指针类对象。3.包含关系:对象Dog是对象Person的成员,Person的析构函数被调用时,对象Dog的析构函数也被调用。4.
Stella981 Stella981
3年前
PostgreSQL
内存上下文背景:需要经常处理大量以指针传值的查询,存在内存泄漏的问题,直到查询结束才能收回内存。所以实现了新的内存管理机制内存上下文(MemoryContext)内存上下文通俗解释:一个内存上下文相当于一个进程环境,进程环境间不互相影响,pgSQL提供了在内存上下文进行内存操作的函数:pallloc、pfree、repalloc
Wesley13 Wesley13
3年前
MySQL 数据库索引
数据库索引在数据库中、索引使数据库程序无须对整个表进行全表扫描就可以在其中找到所需的数据;数据库中的索引是某个表中一列或者若干列值的集合、以及物理标识这些值的数据页的逻辑指针清单;MySQL索引的增删查(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.cnbl
Stella981 Stella981
3年前
Redis单机数据库
 单机数据库·Redis服务器的所有数据库都保存在redisServer.db数组中,而数据库的数量则由redisServer.dbnum属性保存。·客户端通过修改目标数据库指针,让它指向redisServer.db数组中的不同元素来切换不同的数据库。·数据库主要由dict和expires两个字典构成,其中dict字典负责保存键值对
小万哥 小万哥
10个月前
深入浅出 C 语言:学变量、掌控流程、玩指针,全方位掌握 C 编程技能
C语言简介C语言介绍C语言的特性C语言相对于其他语言的优势C程序的编译C中的HelloWorld程序参考文章:学习变量、数据类型和运算符C中的变量和关键字C语言中的作用域规则C中的数据类型运算符及其类型C语言中的类型转换参考文章:了解控制流语句C语言中的循