自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 程序签名自校验 ,防止程序被病毒注入

/*****************************************************//* 软件本身数字签名校验/*参数:/* unsigned char* pubkeyTLV 公钥TLV数据/* unsigned int uiPubKLen 数据长度/*返回值:/* TRUE 签名正常,程序未被改动/* FALSE 签名无效,程序被篡改/************************

2021-08-10 17:45:50 500

原创 strcpy_s与 strcpy的 区别和 遇到的坑

首先strcpy 是标准c函数数 任何 c/c++ 编译器都支持strcpy_s 是微软定义的,其他编译器都不支持strcpy定义:char * strcpy ( char * destination, const char * source );strcpy_s定义:errno_t __cdecl strcpy_s( char* _Destination, size_t _SizeInBytes, char const* _Sour

2021-07-15 15:31:51 928

原创 Windows下 xxx.html 与 xxx_files 文件夹的绑定现象

环境 : win7 64位发现了一个有趣的现象,在保存网页时,不仅保存了html文件,同时资源文件也保存在了一个与网页同名 带后缀为_files的文件夹当企图重命名html文件或者文件夹时,会弹出提示为了测试,手动创建了一个空的"123.html"和一个空的"123_files"文件夹,当尝试重命名其中一个时,也弹出如上图提示。未找到相关原因,经测试只发现了.html 和 .htm 后缀的文件有这种现象,猜想可能是windows专门为保存网页脱机文件设置的机制吧。...

2021-03-19 11:24:29 802

原创 C++ 通过Com 组件 启用/禁用 网卡 查看网卡状态

#include <NetCon.h>void ChangeNetState(){ CoInitialize(NULL); INetConnectionManager* pNetManager; INetConnection* pNetConnection; IEnumNetConnection* pEnum; if (S_OK != CoCreateInstance(CLSID_ConnectionManager, NULL, CLSCTX_SER

2021-03-17 14:57:59 1577 1

原创 JNI学习笔记(三):C/C++ 调用 java类 方法

本文使用的开发环境:vs2008idea 64位jdk 1.8 64位概述:前两篇文章中已经实现了java调用 c++ 方法 ,本篇文章主要 实现 c/c++ 调用 java方法相关文章索引:JNI学习笔记(一):环境配置及简单使用 java调用c++dll库JNI学习笔记(二):各种类型参数的处理和输入输出 ( String StringBuffer Arraylist 自定义类等)示例代码:自定义类TestA,用来存储数据//TestA.javapublic c

2021-03-15 16:47:09 358 1

原创 JNI学习笔记(二):各种类型参数的处理和输入输出 ( String StringBuffer Arraylist 自定义类 等)

开发环境 :  vs2008 、idea java8JAVA 调用 C/C++ 动态库前一篇文章 JNI学习笔记(一):环境配置及简单使用 java调用c++ dll库 中已经实现了java调用dll 。但是,由于java和c++ 的数据类型是不同的,所以处理java和c++ 数据交互的重点是 各种类型的转换。1.基本类型的处理jni.h中已经对基本类型有了定义,不需要进行额外处理示例代码: //JniTest.java 在java中的函数声明 //通过返回值 返回 int类型

2021-03-10 11:13:27 1101

原创 JNI学习笔记(一):环境配置及简单使用 java调用c++ dll库

开发环境 :  vs2008 、idea java81.在idea里创建一个空项目,创建测试类public class JniTest { public native void voidPrintTest(); public static void main(String[] args){ System.loadLibrary("jniLibrary"); JniTest jniDemo = new JniTest(); jniDem

2021-03-05 13:56:49 224 4

原创 OpenCV windows 下 源码编译生成静态库

一、下载官网下载opencv : 下载地址https://opencv.org/releases/我下载的是最新版OpenCV – 4.5.1下载速度比较慢 ,可以参考 https://blog.csdn.net/xuyouqiang1987/article/details/103476287中的方法使用迅雷下载二、Cmake配置vs项目编译opencvcmake 的安装需要另行百度Where is the rource code :OpenCV源代码所在的文件夹(我的是 C:\opencv

2021-01-19 12:07:38 951 2

原创 Windows 注册表相关API总结

一、注册表简介注册表实际上是一个管理配置系统运行参数的核心数据库,它记录了安装软件与运行程序的关联关系,计算机的硬件配置等信息。可以说计算机上所有针对硬件、软件、网络的操作都是源于注册表的。可以使用 regedit.exe 这个系统提供的注册表编辑器去管理编辑注册表,他只是一个编辑器不是注册表的文件。如上图所示,注册表预设有五个根键:HKEY_CLASSES_ROOTHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_USERHKEY_CURRENT_CONFI

2020-10-22 16:24:35 3050

原创 c/c++ 一些不常用却有奇效的函数

1._msize 返回在堆中分配的存储块的大小。#include <malloc.h>size_t _msize( void *memblock);

2020-10-20 16:35:20 147

原创 QT 出现 warning: unterminated #pragma pack (push, ...) at end of file 问题

出现问题的QT版本 : QT 5.14.2现象:解决办法:在#pragma pack(push) 前面加上分号 ;#pragma pack(push)参考地址:https://bugreports.qt.io/browse/QTCREATORBUG-21437

2020-06-29 16:24:55 3320 1

原创 通过修改注册表 修改 IE 安全设置 ActiveX 控件被拒解决方法

参考的原文地址: 通过注册表修改IE的Internet选项 Internet Explorer 安全区域设置存储在以下注册表子项下面:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\InternetSettingsHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\InternetSettings这些注册表项包含以下项:TemplatePoli

2020-06-19 14:47:59 1602

原创 火狐Firefox 各个版本浏览器 官方下载地址

https://ftp.mozilla.org/pub/firefox/releases/

2020-06-18 12:17:41 1492

原创 面试题64. 求1+2+…+n 【小技巧】

原题地址:LeetCode 面试题64. 求1+2+…+n题目:求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1 <= n <= 10000这道题主要的难点是各种限制。限制乘除法,不能使用公式 1+ … +n = (1+n)*n/2;限制for,while等 ,不能使用循环限制i

2020-06-02 09:48:09 317

原创 1371. 每个元音包含偶数次的最长子字符串【前缀和 + 状态压缩】

原题地址:LeetCode 1371. 每个元音包含偶数次的最长子字符串题目:示例 1:输入:s = “eleetminicoworoep”输出:13解释:最长子字符串是 “leetminicowor” ,它包含 e,i,o 各 2 个,以及 0 个 a,u 。示例 2:输入:s = “leetcodeisgreat”输出:5解释:最长子字符串是 “leetc” ,其中包含 2 个 e 。示例 3:输入:s = “bcbcbc”输出:6解释:这个示例中,字符串 “bcbc

2020-05-26 17:38:59 141

原创 c++ 中 如何把 结构体 / 类 当作 if/for/while 的判断条件

#include<iostream>using namespace std;struct Test{ int x;}; int main(int argc, char* argv[]){ struct Test t = {3}; if(t); return 0;}当我们这样写的时候,编译器是编译不过的,因为无法判断if(t),编译器会报类似这样的错意思是无法从Test 类型转换成bool 型所以我们只要重载类型转换运算符就可以了#include<iostr

2020-05-09 23:07:14 2091

原创 MFC 实现拖动文件获取文件路径

参考文章:Edit Control实现文件拖拽                  DragQueryFile1.文件拖动到对话框(1)添加消息映射//CMyTestDlg.cppBEGIN_MESSAGE_MA...

2020-04-15 18:40:39 957

原创 CRITICAL_SECTION 临界区/关键代码段的 使用

先把代码贴上,有时间再补详细说明//头文件#include<windows.h>//声明全局变量CRITICAL_SECTION g_csTest1; //初始化InitializeCriticalSection(&g_csTest1); //使用EnterCriticalSection(&g_csTest1); ....需要临界访问的代码...

2020-03-17 09:33:33 441

原创 MFC 定时器的定义和使用

声明和定义//定义 timer ID#define MTIMER_1 WM_USER +100//添加Ontimer消息映射ON_WM_TIMER()//声明void OnTimer(UINT_PTR nIDEvent);//定义void CxxxDlg::OnTimer(UINT_PTR nIDEvent){ switch (nIDEvent){ case MT...

2020-03-10 16:36:51 249

原创 用 windows 资源监视器 查看 被占用的文件

0.当文件用独占方式打开时,如果文件此时已被占用,则 HANDLE hFile = CreateFile(szMacFile, GENERIC_READ, // open for writing 0, // do not share NULL, // default security OPEN_EXISTING...

2020-02-28 17:40:49 2662

原创 c++ 使用nothrow ,防止new失败 抛出异常导致程序崩溃

参考文章:http://www.cplusplus.com/reference/new/nothrow/?kw=nothrow使用malloc时经常使用类似代码检查是否malloc成功char *p = (char*) malloc(100000);if(p != NULL){ //.......}受其影响,一直以来都以为new也可以用此方法判断,也没出现过错误(因为从来没new失败...

2020-01-20 16:27:43 1306

原创 struct 结构体在 c和 c++ 中的不同使用方法

1.C 中 struct 的常见使用方法//////第一种方法//定义struct Mystruct{ int x; int y;}ms1; //同时定义了变量ms1//使用struct Mystruct ms2; //必须加structms1.x = 1;ms1.y = 2;ms2.x = 3;ms2.y = 4;//////第二种方法//定义typede...

2020-01-13 11:45:07 307

原创 WTL png图像转灰度图像 ,保留Alpha通道

参考文章: RGB转灰度的几种算法思路 : 用GDI+ 里的Bitmap 加载 png图像 ,取出每个点的 argb值,保留a ,计算 RGB转灰度的值具体代码如下: Bitmap * pbm = NULL; LoadImageFromResource(DisableResID,_T("PNG"),pbm); Color pixColor; BYTE r,g,b,grey; for(...

2019-11-25 15:02:10 415

原创 WTL 绘制 圆角对话框 自绘对话框

主要思路:先把对话框设为透明,再画一个圆角矩形具体代码:1.设置透明,在OnInitDialog添加如下代码。关于SetLayeredWindowAttributes函数的具体使用方法,可参照:WTL 设置窗口透明 SetLayeredWindowAttributes使用方法 LONG nExStyle = ::GetWindowLong(m_hWnd, GWL_EXSTYLE);...

2019-11-25 14:31:34 270

原创 WTL 设置窗口透明 SetLayeredWindowAttributes使用方法

在 OnInitDialog 里添加 LONG nExStyle = ::GetWindowLong(m_hWnd, GWL_EXSTYLE); nExStyle |= WS_EX_LAYERED; ::SetWindowLong(m_hWnd, GWL_EXSTYLE, nExStyle);

2019-11-22 09:20:51 876

原创 WTL 设置控件背景颜色 Edit,Static等

给静态文本设置背景颜色头文件里 //MSG_MAP MESSAGE_HANDLER(WM_CTLCOLORSTATIC,OnCtlColorStatic) //函数声明 LRESULT OnCtlColorStatic(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);cpp里LRESULT CInitPinD...

2019-11-20 11:30:33 665

原创 WTL 按钮自绘,加载资源库中的png图片

此类是基于WTL 自定义 Button类-自绘 改写的这个类是用来做软键盘按键的,所以有大小写的切换,可以从资源库中加载png资源作为按钮的背景图,如果需要加载本地文件,参考参考文章1 :WTL 自定义 Button类-自绘注意按钮要是 自绘类型的,否则无法实现按钮自绘参考文章WTL 自定义 Button类-自绘CImage从资源中加载图片文件//PngButton.cpp#pra...

2019-11-15 16:56:50 326

原创 atlmisc.h 和 atlimage.h类定义冲突的问题解决方案, “CPoint”: 不明确的符号

环境 vs2008 sp1WTL81解决方案:#ifdef __ATLMISC_H__ //如果包含了atlmisc.h#define __ATLTYPES_H__ //则不编译atltypes.h#endif#include <atlimage.h>此时可能还有 CString 不明确等错误可使用宏定义//#define _WTL_NO_WTYPES ...

2019-11-15 16:08:37 825

转载 error RC1015: cannot open include file 'atlres.h' 的解决方案

原文地址: error RC1015: cannot open include file 'atlres.h’问题解决VS2008 打开 WTL项目 报错 error RC1015: cannot open include file ‘atlres.h’2、WTL工程属性——配置属性——C/C++——常规——附加包含目录 添加WTL的Include目录3、编译时出现error RC10...

2019-11-11 19:35:50 1219 1

原创 c++ 添加日志函数

void PrintLog(char *fmt, ...){ DWORD dwRe = GetLastError(); time_t now = time(0); tm *ltm = localtime(&now); char sztime[1024] = {0}; sprintf(sztime,"%04d-%02d-%02d %02d:%02d:%02d ",1900+...

2019-11-06 16:31:37 485

原创 C 语言 HexString 转byte数组 ,byte数组转HexString

HexString 转byte数组:int HexStrTobyte(char *str, unsigned char *out, unsigned int *outlen){ char *p = str; char high = 0, low = 0; int tmplen = strlen(p), cnt = 0; tmplen = strlen(p); while(cnt &l...

2019-08-16 16:55:07 4128 2

原创 hihoCoder #1506 : 投掷硬币

题目地址:https://hihocoder.com/problemset/problem/1506时间限制:10000ms单点时限:1000ms内存限制:256MB描述小Hi有一枚神奇的硬币。已知第i次投掷这枚硬币时,正面向上的概率是Pi。现在小Hi想知道如果总共投掷N次,其中恰好M次正面向上的概率是多少。输入第一行包含两个整数N和M。第二行包含N个实数P1, P2, … PN...

2019-07-29 11:10:58 202

原创 用 WinInet InternetOpen做一个简单的下载器

环境: win7 64位 vs2008 ( MFC ASCii)参考文章:MSDN      Wininet 错误码      利用WinINet进行网络程序的编程写在开头:本文中是用的同步方法 ,     好处是比较简单,方便 ;     坏处是 InternetOpenUrl 可能会遇到 卡死不返回的情况;     更好的方法是使用异步的方式下载...

2019-07-21 17:28:38 1413

原创 按键精灵X学习笔记(二):键盘命令

测试代码//键盘命令测试Dim bCapsIsLockbCapsIsLock = KeyState(20)If bCapsIsLock Then MsgBox "大写锁定已开启"Else MsgBox "大写锁定未开启"End If Dim DelayTime = 200Delay (DelayTime)KeyGroup("R", "Win")Delay (Del...

2019-05-27 11:37:09 3266

原创 104键键盘 按键码表

104键键盘键位布局图**★主键盘区**A → 65B → 66C → 67D → 68E → 69F → 70G → 71H → 72I → 73J → 74K → 75L → 76M → 77N → 78O → 79P → 80Q → 81R → 82S → 83T → 84U → 85V → 86W → 87X → 88Y → 89...

2019-05-24 17:46:52 25727

原创 按键精灵X学习笔记(一):熟悉软件和基本设置

环境:  Win10 64位  按键精灵2014一、准备工作1.官网下载按键精灵2014下载地址2.按键精灵离线帮助文档(可以等需要时再下载)度盘 链接: https://pan.baidu.com/s/1jmXc1-USldZC9Uc-olbPXQ 提取码: ngqi文档大概长这样,这里面介绍了按键的 各个函数的参数 和用法用例3.自己玩的游戏二、配置(可省略)...

2019-05-18 23:19:23 2510 2

原创 快速排序 c++ 实现

#include <iostream>using namespace std;void qsort(int Arr[],int left,int right){ if(left>=right){ return; } int flg = Arr[left]; int i = left; int j = right; while(i<j){ for(;...

2019-05-10 16:18:51 143

原创 用modutil 注册PKCS#11 模块到nss/firefox

环境: Centos 6.5modutil 参数:所有命令可参见系统自带帮助,通俗易懂。modutil (选项)(参数)Usage: modutil [command] [options] COMMANDS-------------------------------------------------------------...

2019-05-08 18:01:35 530

原创 用certutil 注册根证书到nss/firefox

环境: Centos 6.5certutil 参数:所有命令可参见系统自带帮助,通俗易懂。certutil(选项)(参数)[root@localhost lftshell]# certutil -H-A Add a certificate to the database (create if needed) All options un...

2019-05-07 17:09:31 2181 3

原创 【Tips】简单方法解决 新版Chrome 不能添加非官方扩展 (该扩展程序未列在 Chrome 网上应用店中)的问题

新版本的Chrome,默认不支持非官方扩展。在扩展列表中,被禁用的扩展右侧启用的选项已变成不可勾选状态,并在该扩展下会显示“该扩展程序未列在 Chrome 网上应用店中,并可能是在您不知情的情况下添加的。”。两步简单解决Chrome 不能添加非官方扩展的问题。      首先打开Chrome扩展页面,打开开发者模式,记录下被禁用扩展的id然后复制下面这段话,并替换扩展id ,然后...

2019-04-15 10:09:12 4981 15

Jni 项目 包含各种数据类型转换

通过jni 用java调用c/c++ 编译的 dll 动态库 帖子地址 https://blog.csdn.net/qq_38777624/article/details/114625668

2021-03-11

PKCS #11 v2.20 官方文档英文原版

PKCS #11 v2.20 官方文档英文原版

2021-01-06

MFC 编程入门教程55篇完整版.pdf

VS2010之MFC入门到精通教程的pdf,共306页 ,10大章节,55小节。完整有图版 第一部分:VS2010/MFC 开发环境 VS2010/MFC 编程入门之前言 VS2010/MFC 编程入门之一(VS2010 与MSDN 安装过程图解) 第二部分:VS2010/MFC 应用程序框架 VS2010/MFC 编程入门之二(利用MFC 向导生成单文档应用程序框架) VS2010/MFC 编程入门之三(VS2010 应用程序工程中文件的组成结构) VS2010/MFC 编程入门之四(MFC 应用程序框架分析) VS2010/MFC 编程入门之五(MFC 消息映射机制概述) 第三部分:对话框 VS2010/MFC 编程入门之六(对话框:创建对话框模板和修改对话框属性) VS2010/MFC 编程入门之七(对话框:为对话框添加控件) VS2010/MFC 编程入门之八(对话框:创建对话框类和添加控件变量) VS2010/MFC 编程入门之九(对话框:为控件添加消息处理函数) VS2010/MFC 编程入门之十(对话框:设置对话框控件的Tab 顺序) VS2010/MFC 编程入门之十一(对话框:模态对话框及其弹出过程) VS2010/MFC 编程入门之十二(对话框:非模态对话框的创建及显示) VS2010/MFC 编程入门之十三(对话框:属性页对话框及相关类的介绍) VS2010/MFC 编程入门之十四(对话框:向导对话框的创建及显示) VS2010/MFC 编程入门之十五(对话框:一般属性页对话框的创建及显示) VS2010/MFC 编程入门之十六(对话框:消息对话框) VS2010/MFC 编程入门之十七(对话框:文件对话框) VS2010/MFC 编程入门之十八(对话框:字体对话框) VS2010/MFC 编程入门之十九(对话框:颜色对话框) 第四部分:常用控件 VS2010/MFC 编程入门之二十(常用控件:静态文本框) VS2010/MFC 编程入门之二十一(常用控件:编辑框Edit Control) VS2010/MFC 编程入门之二十二(常用控件:按钮控件Button、Radio Button 和Check Box) VS2010/MFC 编程入门之二十三(常用控件:按钮控件的编程实例) VS2010/MFC 编程入门之二十四(常用控件:列表框控件ListBox) VS2010/MFC 编程入门之二十五(常用控件:组合框控件Combo Box) VS2010/MFC 编程入门之二十六(常用控件:滚动条控件Scroll Bar) VS2010/MFC 编程入门之二十七(常用控件:图片控件Picture Control) VS2010/MFC 编程入门之二十八(常用控件:列表视图控件List Control 上) VS2010/MFC 编程入门之二十九(常用控件:列表视图控件List Control 下) VS2010/MFC 编程入门之三十(常用控件:树形控件Tree Control 上) VS2010/MFC 编程入门之三十一(常用控件:树形控件Tree Control 下) VS2010/MFC 编程入门之三十二(常用控件:标签控件Tab Control 上) VS2010/MFC 编程入门之三十三(常用控件:标签控件Tab Control 下) 第五部分:菜单、工具栏与状态栏 VS2010/MFC 编程入门之三十四(菜单:VS2010 菜单资源详解) VS2010/MFC 编程入门之三十五(菜单:菜单及CMenu 类的使用) VS2010/MFC 编程入门之三十六(工具栏:工具栏资源及CToolBar 类) VS2010/MFC 编程入门之三十七(工具栏:工具栏的创建、停靠与使用) VS2010/MFC 编程入门之三十八(状态栏的使用详解) 第六部分:文档、视图和框架 VS2010/MFC 编程入门之三十九(文档、视图和框架:概述) VS2010/MFC 编程入门之四十(文档、视图和框架:各对象之间的关系) VS2010/MFC 编程入门之四十一(文档、视图和框架:分割窗口) 第七部分:MFC 常用类 VS2010/MFC 编程入门之四十二(MFC 常用类:CString 类) VS2010/MFC 编程入门之四十三(MFC 常用类:CTime 类和CTimeSpan 类) VS2010/MFC 编程入门之四十四(MFC 常用类:定时器Timer) VS2010/MFC 编程入门之四十五(MFC 常用类:CFile 文件操作类) VS2010/MFC 编程入门之四十六(MFC 常用类:MFC 异常处理) 第八部分:字体和文本输出 VS2010/MFC 编程入门之四十七(字体和文本输出:CFont 字体类) VS2010/MFC 编程入门之四十八(字体和文本输出:文本输出) 第九部分:图形图像 VS2010/MFC 编程入门之四十九(图形图像:CDC 类及其屏幕绘图函数) VS2010/MFC 编程入门之五十(图形图像:GDI 对象之画笔CPen) VS2010/MFC 编程入门之五十一(图形图像:GDI 对象之画刷CBrush) 第十部分:Ribbon 界面开发 VS2010/MFC 编程入门之五十二(Ribbon 界面开发:创建Ribbon 样式的应用程序框架) VS2010/MFC 编程入门之五十三(Ribbon 界面开发:为Ribbon Bar 添加控件) VS2010/MFC 编程入门之五十四(Ribbon 界面开发:使用更多控件并为控件添加消息处理函数)

2019-08-26

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

TA关注的人

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