- 博客(67)
- 资源 (5)
- 收藏
- 关注
原创 Win10+GTX3060+Python+PyTorch+Tensorflow安装
本文概述了如何安装支持GPU计算的Tensorflow和PyTorch。
2023-01-25 22:19:31
443
原创 利用msys2安装clang和llvm编译器
很多文章介绍了如何从clang官网安装clang和llvm,不过最后都会说缺少include和lib,需要用别的方法。其实用msys2就可以下载基于MinGW-w64项目的clang和llvm。步骤如下:
2021-06-01 19:51:53
6043
2
原创 制作可被svchost调用的服务(下)
上一篇简要介绍了如何制作一个可被svchost调用的服务,本篇介绍如何使得这个服务可以被svchost识别并调用。svchost会到注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost项中搜索其子项,每一个子项都是一个svchost服务组,svchost项有很多键值,每个键对应一个服务组,其值是该服务组下所有的服务所以,首先要决定我们自己的服务放在哪个服务组里,这里假设是netsvcs组。在nets
2021-05-23 12:49:12
351
原创 制作可被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
467
3
原创 一个简单的基于C++的免main函数的主程序框架类
教家里娃儿学习C++语言时,为了讲解C++的封装、继承、多态性等,写了个简单的主程序框架类。应用程序只要从这个主程序框架类派生出子类,实现其run(...)方法,然后定义一个子类实例即可。抽象应用程序类AbstractApplication类的代码如下:// absapp.h#ifndef __ABSAPP_H#define __ABSAPP_H/** * AbstractApplication 应用程序的抽象框架类。 * 应用程序主类应该从此类派生,override其纯虚函数run,随
2021-05-03 09:57:18
405
原创 一个简单小巧的日志类
其实网上可以找到很多日志库,不过大多太大、考虑得太细致,所以索性自己写个最适合自己用的。类定义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
147
原创 利用Win32 API获取当前登录用户名的几种方法比较
方法一:使用GetUserName函数。GetUserName可以获得创建当前进程的用户名,其函数原型是:BOOL GetUserNameA(LPSTR lpBuffer, LPDWORD pcbBuffer);其中,lpBuffer指向存放用户名的字符数组,pcbBuffer在调用之前需要赋予lpBuffer指向的缓冲区的长度,调用完成后会返回用户名的长度。代码示例如下:string getLoginUsernameByApi(){ char username[1024];
2021-05-02 15:36:27
2079
原创 用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
1118
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
1155
原创 Windows下双显示器截屏方法
网上的Windows环境下截屏的源代码很多,但是看到的都是只能适应单显示器,无法截取桌面扩展到双显示器情况下的完整屏幕。过查找资料和摸索,发现问题的关键就在于正确获得截屏的长宽尺寸。通常,计算屏幕实际大小可以用:HWND hWnd = GetDesktopWindow();RECT re;GetWindowRect(window, &re);int width = re.rig...
2020-04-08 18:43:14
4601
原创 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
1980
3
原创 将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
548
原创 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
642
2
原创 笔记:STL的thread库应用
最近研究了一下STL的thread库,做为学习成果,写了几个封装类,把thread封装起来,提供了sleep和stop方法,做为对thread的补充。基类是AbstractThread,定义了start、stop、sleep三个公开的虚函数。start方法用于启动线程代码运行,stop方法用于终止线程代码,sleep方法供AbstractThread的子类使用,可用来暂停一段指定的时间。A...
2020-02-14 21:09:20
554
原创 Linux下列表所有进程、根据进程名得到pid和根据pid得到进程名
Linux下的当前正在运行的进程信息均存放在/proc目录下,有一系列以数字为名的子目录,每一个子目录对应一个进程,子目录名就是进程的pid。子目录下的status文件内容就是进程的基本信息,包括进程名、pid、ppid等。因此,若要扫描系统当前正在运行的所有进程,只需要遍历/proc目录下所有以数字为名的子目录下的status即可。据此,可得到获取当前系统所有进程快照、根据pid获得进程名和根据...
2020-02-05 19:46:05
1351
原创 在Eclipse CDT中添加非标准库
默认情况下,在CDT中开发C/C++程序时,如果只是用C/C++标准库,无需任何额外设置。不过,如果要开发的程序使用了非标准库,例如WinSock库,那就得在project中单独设置。鼠标右击project名,在弹出菜单中选择Properties,弹出project属性设置对话框,在左侧视图找到其中的C/C++ Build ——> Settings,先在右侧视图的上方Configuratio...
2020-02-01 15:50:28
202
原创 为Eclipse CDT添加完整的代码自动完成功能
Eclipse CDT是个很好的C/C++ IDE,但是其编辑器却有个非常糟糕的槽点:代码自动完成只支持由‘.’、‘:’、‘>’这三个字符触发,这比大多数C/C++ IDE都差得多。这个问题很早就被提出来,并且解决的办法并不复杂,很多人都给出了解决方案,但是不知道为什么CDT的作者一直没有改进。既然原生CDT功能不足,那就自己动手,丰衣足食。以下制作方法来源于网上素材,我在这里不过是重新...
2020-01-31 09:36:27
2219
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
649
4
原创 在Eclipse CDT中利用Build Configuration构建有多个main函数的程序
进来在为家里宝宝编写C/C++教程讲义,想用Eclipse做个project,里面每个文件是一个演示程序或者练习的答案。由于每个源代码文件都是完整的,都会有main函数,因此就会导致链接时出错,提示main函数重复定义。看到Eclipse有多build target的功能,就考虑使用这个功能来为每个源代码文件构建一个target来解决main函数重复定义的问题。查了很多资料,都说要用分别创建不同的...
2019-12-08 09:35:46
954
原创 基于USBDeview的自制USB设备监管系统实现(1)——系统架构
现在各企业对于信息系统中的信息安全都开始重视,对于USB接口的移动设备的监管也越发严格。市面上有很多平台化的USB设备监管工具,多数是包含在主计审计系统中的一项功能。不过这些商业化的工具平台价钱都很贵,在企业里完整部署的话少则数十万元,多则上百万元,对中小企业来说是一笔不小的开销。另外,主机审计工具出于自我防护的需要,一般都要接管/注入操作系统内核,弄得不好就会影响到终端的稳定性。而某些靠行政力量...
2019-09-21 19:53:25
566
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
491
原创 基于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
456
原创 基于USBDeview的自制USB设备监管系统实现(2)——USBDeview工具
上一章提到,本系统中采用了usbdeview程序作为USB Device Monitor程序。usbdeview是NirSoft出品的一款USB设备控制的小程序,可以列出当前系统曾经插入的所有USB设备的详细信息。这是个绿色软件,可以随用随装,使用非常方便。程序只有一百多KB大小,运行时占用3MB多点内存,资源消耗很少。下图是usbdeview运行时的界面:可以发现,usbdevi...
2019-05-04 14:41:27
1320
原创 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
4613
原创 用Java实现的树
琢磨其他东西的时候弄出来的副产品,自娱自乐用。树的节点有名称和值两个公开的属性。每一个节点可以重名、重值,靠节点的内部UUID区分。因此,这个树类内部并不排序,是一种“乱序”树,因而也是“自由”树。TreeNode类使用了Java的泛型技术,所以树节点的value可以是任何类型(但是同一棵树的所有节点的value只能是同种类型),name属性是字符串类型。TreeNode的完整代码如下...
2019-02-09 13:36:31
212
原创 Openfire自带的PacketFilter插件的包过滤规则应用机制
Openfire内置了包过滤插件PacketFilter,这个插件可以定义一系列过滤消息包的规则,可以指定接收、拒收、反弹来自或发至某个用户、组、组件或任意端点的消息。当在PacketFilter中定义了多个过滤规则时,PacketFilter按照以下规则处理:1. 从规则集中提取所有规则;2. 按照规则集定义的顺序逐个匹配规则:2.1 若匹配到某个规则,则指定该规则规定的动作(接...
2018-12-07 21:58:00
600
原创 【笔记】图片在<div>中水平和垂直居中的两种方法
以下是使得图片在<div>中水平和垂直居中的两种方法:<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title>DIV水平及垂直居中</title> <style&g
2018-04-21 10:27:25
757
原创 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
671
转载 下载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
4611
原创 用eclipse将多个jar打包成一个jar
在开发java程序时,经常要用到第三方jar包。发布java程序时,若带着一大堆第三方jar包,既不方便,命令行也挺长,容易出错。若是能将所有的第三方jar文件连同程序运行文件一并打包成一个jar,使用就会方便得多。经过摸索,可以使用eclipse完成此项功能。步骤如下:0. 前置条件: 已在eclipse中创建了项目,并导入了所有第三方jar文件;1. 鼠标右击project名称(本例中
2017-01-30 16:32:04
4278
原创 DIV+CSS布局的占位计算
宽度计算公式:左外边距 + 左边框 + 左内边距 + 元素宽度 + 右内边距 + 右边框 + 右外边距高度计算公式类似。注意:Chrome和Firefox浏览器的开发者工具界面中计算DIV元素宽度和高度时,不把外边距计算在内。例如:,实际占据宽度应该是:20 + 10 + 100 + 10 + 20 = 160px;但是在chrome和firefox中,在开发者工具中,你会发现计算出来
2017-01-27 13:29:25
2083
原创 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
332
原创 SpringMVC注记式验证学习笔记——指定验证出错提示信息资源文件及其编码
提示消息资源文件及其编码均位于spring的bean配置文件中,样式如下: 其中basename属性指定消息资源文件的位置,spring会自动为其加上区域代码和properties扩展名。defaultEncoding属性指定该文件的编码。
2016-12-07 19:08:29
763
原创 SpringMVC注记方式验证学习笔记——验证出错提示信息文本与验证注记的关联
SpringMVC可以使用JSR303规定的注记模式的Bean验证,验证错误时的提示消息放在messages[_区域名].properties文本文件里,格式为:注记名.被验证字段名 = 验证错误提示消息例如,以下代码使用了JSR303注记验证:package study.springmvc.validation.usejsr303.model;import jav
2016-12-06 22:37:52
1199
原创 Struts学习笔记(1)
注意事项:1. 在eclipse里关联struts2库的时候,不要一股脑选中所有的库,否则运行时会莫名其妙冒出来一大堆奇奇怪怪的问题,只保留以下几个基础包就行:2. struts.xml必须放在Eclipse的struts工程的src目录下,否则运行时会找不到过滤器之类的。
2016-10-07 16:01:36
315
原创 CentOS 7最小安装之后应该尽快做好的几件事情
CentOS 7最小安装之后应该尽快做好的几件事情1 导言CentOS的最小系统仅包含内核和必要的工具,派不上多大用处,以后还得安装很多附加软件。为了方便以后的工作,还需要对系统做一些调整和补充。本文涉及的工作均应以root身份执行。2 安装wgetwget是一个可以从http、ftp服务器上下载文件的程序,可用于下载特定的包或文件,非常有用。后面的
2016-04-24 15:25:28
18594
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
10762
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
1514
Eclipise CDT 2021-03版自动完成支持插件
2021-06-29
org.eclipse.cdt.ui_6.5.1.201912101912.jar
2019-12-10
jBPM User Guide
2013-11-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人