自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (5)
  • 收藏
  • 关注

原创 VMware虚拟机无法向宿主机拖放文件

本文分析了虚拟机无法向宿主机拖放文件的一种可能的解决方法。

2023-01-26 10:42:06 3080

原创 Win10+GTX3060+Python+PyTorch+Tensorflow安装

本文概述了如何安装支持GPU计算的Tensorflow和PyTorch。

2023-01-25 22:19:31 827

原创 利用msys2安装clang和llvm编译器

很多文章介绍了如何从clang官网安装clang和llvm,不过最后都会说缺少include和lib,需要用别的方法。其实用msys2就可以下载基于MinGW-w64项目的clang和llvm。步骤如下:

2021-06-01 19:51:53 9055 2

原创 制作可被svchost调用的服务(下)

上一篇简要介绍了如何制作一个可被svchost调用的服务,本篇介绍如何使得这个服务可以被svchost识别并调用。svchost会到注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost项中搜索其子项,每一个子项都是一个svchost服务组,svchost项有很多键值,每个键对应一个服务组,其值是该服务组下所有的服务所以,首先要决定我们自己的服务放在哪个服务组里,这里假设是netsvcs组。在nets

2021-05-23 12:49:12 677

原创 制作可被svchost调用的服务(上)

一个被svchost调用的服务应该做成DLL,所以必须定义DLLMain函数,做为动态库的入口。DLLMain的代码框架如下:BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved){ switch (ul_reason_for_call) { case DLL_PROCESS_DETACH: // 将服务状态设置为SERVICE_CONTROL_

2021-05-23 10:51:47 843 3

原创 一个简单的基于C++的免main函数的主程序框架类

教家里娃儿学习C++语言时,为了讲解C++的封装、继承、多态性等,写了个简单的主程序框架类。应用程序只要从这个主程序框架类派生出子类,实现其run(...)方法,然后定义一个子类实例即可。抽象应用程序类AbstractApplication类的代码如下:// absapp.h#ifndef __ABSAPP_H#define __ABSAPP_H/** * AbstractApplication 应用程序的抽象框架类。 * 应用程序主类应该从此类派生,override其纯虚函数run,随

2021-05-03 09:57:18 575

原创 一个简单小巧的日志类

其实网上可以找到很多日志库,不过大多太大、考虑得太细致,所以索性自己写个最适合自己用的。类定义logger.h如下:// logger.h#ifndef __LOGGER_H#define __LOGGER_H#include <string>/** * Logger 通用日志类。 * 日志文本格式为:yyyy-MM-dd hh:mm:ss:sss - log-message-text, message-code, extension-code. *

2021-05-03 07:59:24 209

原创 利用Win32 API获取当前登录用户名的几种方法比较

方法一:使用GetUserName函数。GetUserName可以获得创建当前进程的用户名,其函数原型是:BOOL GetUserNameA(LPSTR lpBuffer, LPDWORD pcbBuffer);其中,lpBuffer指向存放用户名的字符数组,pcbBuffer在调用之前需要赋予lpBuffer指向的缓冲区的长度,调用完成后会返回用户名的长度。代码示例如下:string getLoginUsernameByApi(){ char username[1024];

2021-05-02 15:36:27 3500

原创 用boost::locale::conv转换字符编码时的坑!

这两天编写一个网络通讯程序的时候,遇到字符编码在GBK和UTF-8之间转换的问题,打算用boost::locale::conv里面的函数来转换。代码很简单,调用boost::locale::conv::between即可。在eclipse cdt中编码,用MinGW作为编译器,在家里的电脑上编译链接调试,一切OK!第二天,在单位电脑上写了同样的代码,按照同样的方式设定了project属性,链接的时候却出错了,提示:undefined reference to `libiconv_open'und

2021-04-28 22:17:12 1594 1

原创 获取numpy二维矩阵四个角的值

在菜鸟教程上学习numpy,提及numpy的高级索引,有个例子是给出一个二维矩阵,取出这个矩阵的四个角的元素,代码如下:import numpy as np x = np.array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]]) print ('我们的数组是:' )print (x)print ('\n')rows = np.array([[0,0],[3,3]]) cols = np.array([[0,2

2020-07-30 21:17:13 1566

原创 Windows下双显示器截屏方法

网上的Windows环境下截屏的源代码很多,但是看到的都是只能适应单显示器,无法截取桌面扩展到双显示器情况下的完整屏幕。过查找资料和摸索,发现问题的关键就在于正确获得截屏的长宽尺寸。通常,计算屏幕实际大小可以用:HWND hWnd = GetDesktopWindow();RECT re;GetWindowRect(window, &re);int width = re.rig...

2020-04-08 18:43:14 5737

原创 C++程序利用Windows API获取GUI程序的主窗口

首先要根据进程名称获取进程的pid:int ProcessUtilities::lookupProcesses(const std::string &procName, std::vector<PROCESSENTRY32> &pes){ string lowProcName = procName; StringUtility::lower(lowP...

2020-03-30 21:17:32 2468 5

原创 将Eclipse CDT+MinGW配置成开发WIndows GUI程序的IDE环境

在Windows平台上,Eclipse CDT + MinGW是很好的C/C++开发IDE,不过默认的配置只能用来编写控制台模式的WIndows程序,无法开发GUI程序,最大的障碍就是默认配置无法编译GUI程序需要的.rc文件,而.rc文件中包含了诸多GUI程序所需的图形控件。不过MinGW是带有Resource Compiler的(windres.exe),但是CDT却无法调用MinGW的资源编...

2020-02-16 11:23:26 711

原创 Eclipse CDT编译Windows资源文件(.rc文件)

折腾了很久终于弄明白如何在Eclipse CDT环境中编译Windows编程所需的资源文件了。步骤如下:1. 在project中加入资源文件resources.rc,然后鼠标右击该文件,在弹出菜单中选择“proterties”,如下图所示:2. 在对话框中找到"C/C++ Builder"->"Tool Chain Editor"页面,在右下方的"Select tool"下拉框中...

2020-02-15 22:19:50 796 2

原创 笔记:STL的thread库应用

最近研究了一下STL的thread库,做为学习成果,写了几个封装类,把thread封装起来,提供了sleep和stop方法,做为对thread的补充。基类是AbstractThread,定义了start、stop、sleep三个公开的虚函数。start方法用于启动线程代码运行,stop方法用于终止线程代码,sleep方法供AbstractThread的子类使用,可用来暂停一段指定的时间。A...

2020-02-14 21:09:20 692

原创 Linux下列表所有进程、根据进程名得到pid和根据pid得到进程名

Linux下的当前正在运行的进程信息均存放在/proc目录下,有一系列以数字为名的子目录,每一个子目录对应一个进程,子目录名就是进程的pid。子目录下的status文件内容就是进程的基本信息,包括进程名、pid、ppid等。因此,若要扫描系统当前正在运行的所有进程,只需要遍历/proc目录下所有以数字为名的子目录下的status即可。据此,可得到获取当前系统所有进程快照、根据pid获得进程名和根据...

2020-02-05 19:46:05 1510

原创 在Eclipse CDT中添加非标准库

默认情况下,在CDT中开发C/C++程序时,如果只是用C/C++标准库,无需任何额外设置。不过,如果要开发的程序使用了非标准库,例如WinSock库,那就得在project中单独设置。鼠标右击project名,在弹出菜单中选择Properties,弹出project属性设置对话框,在左侧视图找到其中的C/C++ Build ——> Settings,先在右侧视图的上方Configuratio...

2020-02-01 15:50:28 290

原创 为Eclipse CDT添加完整的代码自动完成功能

Eclipse CDT是个很好的C/C++ IDE,但是其编辑器却有个非常糟糕的槽点:代码自动完成只支持由‘.’、‘:’、‘>’这三个字符触发,这比大多数C/C++ IDE都差得多。这个问题很早就被提出来,并且解决的办法并不复杂,很多人都给出了解决方案,但是不知道为什么CDT的作者一直没有改进。既然原生CDT功能不足,那就自己动手,丰衣足食。以下制作方法来源于网上素材,我在这里不过是重新...

2020-01-31 09:36:27 2816 3

原创 类型无关的C语言通用冒泡排序函数

最近教小家伙C语言,很快就要教到排序了,所以写了个通用的冒泡排序程序。这个函数可以对任意类型数组中的数据排序。需要用到的数据类型和函数声明如下(sort.h):#ifndef __SORT_H#define __SORT_H#include <stdlib.h>#ifndef __cplusplustypedef enum{ false, true,...

2019-12-14 12:08:32 823 4

原创 在Eclipse CDT中利用Build Configuration构建有多个main函数的程序

进来在为家里宝宝编写C/C++教程讲义,想用Eclipse做个project,里面每个文件是一个演示程序或者练习的答案。由于每个源代码文件都是完整的,都会有main函数,因此就会导致链接时出错,提示main函数重复定义。看到Eclipse有多build target的功能,就考虑使用这个功能来为每个源代码文件构建一个target来解决main函数重复定义的问题。查了很多资料,都说要用分别创建不同的...

2019-12-08 09:35:46 1340

原创 基于USBDeview的自制USB设备监管系统实现(1)——系统架构

现在各企业对于信息系统中的信息安全都开始重视,对于USB接口的移动设备的监管也越发严格。市面上有很多平台化的USB设备监管工具,多数是包含在主计审计系统中的一项功能。不过这些商业化的工具平台价钱都很贵,在企业里完整部署的话少则数十万元,多则上百万元,对中小企业来说是一笔不小的开销。另外,主机审计工具出于自我防护的需要,一般都要接管/注入操作系统内核,弄得不好就会影响到终端的稳定性。而某些靠行政力量...

2019-09-21 19:53:25 670 2

原创 基于USBDeview的自制USB设备监管系统实现(4)——Guard Process

Guard Process是一个守护进程,目的是为了防止用户有意或无意间终止常驻的usbdeview进程。本文中,这个守护进程命名为USB Monitor Service(以下简称“ums”),做为Windows系统服务运行。ums会定时扫描系统进程,检查usbdeivew进程是否处于运行中。若发现当前进程列表中没有usbdeview,则会自主运行usbdeview.exe。以下是ums的完整...

2019-05-09 20:21:38 670

原创 基于USBDeview的自制USB设备监管系统实现(3)——USB S/N Checker

在本系列文章的第一章已经说明了USBS/N Checker程序的作用,本章将详细说明这个程序的编制思路,并附完整的源代码。由于历史原因,USBS/N Checker在实现时被命名为usbdevicelogger(以下简称UDL)。UDL用C/C++语言写成,其main函数如下:int main(int argc, char* argv[]){ loadConfig(__c...

2019-05-04 18:19:14 623

原创 基于USBDeview的自制USB设备监管系统实现(2)——USBDeview工具

上一章提到,本系统中采用了usbdeview程序作为USB Device Monitor程序。usbdeview是NirSoft出品的一款USB设备控制的小程序,可以列出当前系统曾经插入的所有USB设备的详细信息。这是个绿色软件,可以随用随装,使用非常方便。程序只有一百多KB大小,运行时占用3MB多点内存,资源消耗很少。下图是usbdeview运行时的界面:可以发现,usbdevi...

2019-05-04 14:41:27 1919

原创 UltraEdit离线注册的最新注意事项

自24.x起,UltraEdit的离线激活的许可证验证方式有了变化,以往那样注释掉hosts文件中的licensing.ultraedit.com以防止许可证检查的方法不管用了,会首先提示激活成功,然后出现对话框,显示:[Window Title]Invalid license detected[Content]Server error 1542: System potentiall...

2019-04-13 10:05:26 5069

原创 用Java实现的树

琢磨其他东西的时候弄出来的副产品,自娱自乐用。树的节点有名称和值两个公开的属性。每一个节点可以重名、重值,靠节点的内部UUID区分。因此,这个树类内部并不排序,是一种“乱序”树,因而也是“自由”树。TreeNode类使用了Java的泛型技术,所以树节点的value可以是任何类型(但是同一棵树的所有节点的value只能是同种类型),name属性是字符串类型。TreeNode的完整代码如下...

2019-02-09 13:36:31 300

原创 Openfire自带的PacketFilter插件的包过滤规则应用机制

Openfire内置了包过滤插件PacketFilter,这个插件可以定义一系列过滤消息包的规则,可以指定接收、拒收、反弹来自或发至某个用户、组、组件或任意端点的消息。当在PacketFilter中定义了多个过滤规则时,PacketFilter按照以下规则处理:1. 从规则集中提取所有规则;2. 按照规则集定义的顺序逐个匹配规则:2.1 若匹配到某个规则,则指定该规则规定的动作(接...

2018-12-07 21:58:00 696

原创 【笔记】图片在<div>中水平和垂直居中的两种方法

以下是使得图片在&lt;div&gt;中水平和垂直居中的两种方法:&lt;!DOCTYPE html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8" /&gt; &lt;title&gt;DIV水平及垂直居中&lt;/title&gt; &lt;style&g

2018-04-21 10:27:25 875

原创 企业信息化的忌和记

要做好企业信息化,要注意:忌——好大喜功,好高骛远,志大才疏,眼高手低记——突破重点,以点带面,夯实基础,步步为营

2017-08-26 22:30:42 343

原创 Android App开发学习笔记(001)——用Android Studio创建虚拟Android设备时的注意事项-01

安装了Android Studio 2.3,创建第一个默认的安卓项目,点击AS的run按钮,在打开的对话框里创建了一个AVD(Android Virtual Device),然后就等着虚拟机屏幕上显示结果了,但是等了半天,AS的状态条一直显示“waiting for target device to come online”,没反应了,AVD也关不掉。琢磨了半天,不知原因。百度了一些做法,也不起作

2017-08-12 22:03:48 737

转载 下载chrome离线安装程序的方法

以下方法转自“知乎”,作者为DevNull。在 chrome 首页的链接 https://www.google.com/chrome/browser/thankyou.html 后加上【?standalone=1&platform=win&installdataindex=defaultbrowser】然后回车就行。standalone=1 :确认下载离线安装包;platform=

2017-02-03 13:22:42 4784

原创 用eclipse将多个jar打包成一个jar

在开发java程序时,经常要用到第三方jar包。发布java程序时,若带着一大堆第三方jar包,既不方便,命令行也挺长,容易出错。若是能将所有的第三方jar文件连同程序运行文件一并打包成一个jar,使用就会方便得多。经过摸索,可以使用eclipse完成此项功能。步骤如下:0. 前置条件: 已在eclipse中创建了项目,并导入了所有第三方jar文件;1. 鼠标右击project名称(本例中

2017-01-30 16:32:04 4440

原创 DIV+CSS布局的占位计算

宽度计算公式:左外边距 + 左边框 + 左内边距 + 元素宽度 + 右内边距 + 右边框 + 右外边距高度计算公式类似。注意:Chrome和Firefox浏览器的开发者工具界面中计算DIV元素宽度和高度时,不把外边距计算在内。例如:,实际占据宽度应该是:20 + 10 + 100 + 10 + 20 = 160px;但是在chrome和firefox中,在开发者工具中,你会发现计算出来

2017-01-27 13:29:25 2265

原创 SpringMVC注记方式验证学习笔记——在注记消息中使用注记参数

例如:public class ProductWithDate implements Serializable{ @Size(min = 1, max = 16) private String name; @Length(min = 5, max = 128) private String description; }对应的消息样式可以是这样的:

2016-12-09 22:59:08 362

原创 SpringMVC注记式验证学习笔记——指定验证出错提示信息资源文件及其编码

提示消息资源文件及其编码均位于spring的bean配置文件中,样式如下: 其中basename属性指定消息资源文件的位置,spring会自动为其加上区域代码和properties扩展名。defaultEncoding属性指定该文件的编码。

2016-12-07 19:08:29 794

原创 SpringMVC注记方式验证学习笔记——验证出错提示信息文本与验证注记的关联

SpringMVC可以使用JSR303规定的注记模式的Bean验证,验证错误时的提示消息放在messages[_区域名].properties文本文件里,格式为:注记名.被验证字段名 = 验证错误提示消息例如,以下代码使用了JSR303注记验证:package study.springmvc.validation.usejsr303.model;import jav

2016-12-06 22:37:52 1223

原创 Struts学习笔记(1)

注意事项:1. 在eclipse里关联struts2库的时候,不要一股脑选中所有的库,否则运行时会莫名其妙冒出来一大堆奇奇怪怪的问题,只保留以下几个基础包就行:2. struts.xml必须放在Eclipse的struts工程的src目录下,否则运行时会找不到过滤器之类的。

2016-10-07 16:01:36 334

原创 CentOS 7最小安装之后应该尽快做好的几件事情

CentOS 7最小安装之后应该尽快做好的几件事情1        导言CentOS的最小系统仅包含内核和必要的工具,派不上多大用处,以后还得安装很多附加软件。为了方便以后的工作,还需要对系统做一些调整和补充。本文涉及的工作均应以root身份执行。2        安装wgetwget是一个可以从http、ftp服务器上下载文件的程序,可用于下载特定的包或文件,非常有用。后面的

2016-04-24 15:25:28 18759 1

原创 在CentOS 7最小环境下安装Cinnamon桌面环境

在CentOS 7最小环境下安装Cinnamon桌面环境1        总体目标学习为CentOS7安装自己喜欢的GUI桌面环境。本次学习使用Cinnamon环境。这个环境是LinuxMint的默认桌面环境,现在看看在CentOS 7上表现如何。2        预备2.1     硬件准备先在VMware Workstation上全新建立一台虚拟机,分配8GB内存,2个处理

2016-04-24 13:27:38 11065 1

原创 调整CentOS 7中yum仓库的优先级

目的:使yum首先搜索DVD仓库,然后再搜索其他仓库。步骤如下:1. 安装priority插件:# yum install yum-plugin-priorities2.  修改CentOS-Media.repo文件,在文件末尾添加一行:priority=13. 修改CentOS-Base.repo文件,在每一节的末尾添加一行:priority=14. 重构

2016-04-24 13:16:12 1599

Eclipise CDT 2021-03版自动完成支持插件

这是Eclipise CDT 2021-03版自动完成支持插件,将org.eclipse.cdt.ui_7.2.0.202106050127.jar复制到eclipse安装目录的plugins目录下,覆盖同名文件即可

2021-06-29

org.eclipse.cdt.ui_6.5.1.201912101912.jar

在关闭eclipse/cdt的情况下,将jar文件复制到CDT的plugins目录下,改名为原有的org.eclipse.cdt.ui_x.x.x.xxxxxxxxxxxx.jar即可。

2019-12-10

usbMon.rar

基于USBDeview的自制USB设备监管系统实现的源代码。压缩包内三个目录分别对应三个功能组件。均采用Code::Blocks+gcc编译。

2019-09-14

jBPM User Guide

jBPM用户手册,PDF版。 JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,使用它要遵循 ASL(Apache License Version 2.0)和EULA(JBoss End User License Agreement)协议。

2013-11-02

空空如也

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

TA关注的人

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