自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

悠悠茹的小窝

可怜九月初三夜,露似珍珠月似弓

  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 Loadiamge 失败,GetLastError 返回值为0

直接贴代码 HBITMAP hBitmap; hBitmap = (HBITMAP)::LoadImage(NULL, m_szBitmapPath, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION); if (NULL == hBitmap) { //打印GetLastError 的值 }...

2021-06-03 14:30:04 358

原创 VC6.0 调用lib 库时报错LINK : fatal error LNK1196: invalid or corrupt import object: unknown version

lib 库是用VS2019的默认配置编译出来,然后在VC6.0 中使用时报错:LINK : fatal error LNK1196: invalid or corrupt import object: unknown version这个问题应该是VS2019对VC6.0的兼容性问题导致的,解决办法如下:打开lib 库的工程,找到项目-->属性-然后找到高级中的全程序优化,将原有的配置改为无全程序优化,重新编译即可...

2021-03-31 16:23:09 1049 1

原创 Android的compileSdkVersion, minSdkVersion 和 targetSdkVersion

compileSdkVersionSDK编译版本。compileSdkVersion 告诉 Gradle用哪个 Android SDK 版本编译你的应用。使用任何新添加的 API 就需要使用对应 Level 的 Android SDK。(只在编译时使用)minSdkVersion最小的SDK版本。如果 compileSdkVersion 设置为可用的最新 API,那么 minSdkVersion 则是应用可以运行的最低要求。minSdkVersion 是 各大Android应用商店用来.

2020-10-12 17:50:33 397

原创 编译tap-windows6-master时遇到的一个坑

1. 驱动源码下载虚拟网卡驱动下载地址:https://github.com/OpenVPN/tap-windows6 (项目名称windows tap driver)虚拟网卡实例下载地址:https://github.com/OpenVPN/Windows-driver-samples (项目名称Windows-drive-samples)截至到2020年5月28日Tap-Windows6 的最新版本为9.24.2.601https://docs.microsoft.com/zh-c...

2020-10-12 16:21:59 1090

原创 如何调用DLL

三种使用DLL的方式:#import, #pragma comment, LoadLibrary ,他们之间的区别:#import 用户从类型库中结合信息,该类型库的内容被转换为C++类,主要用于描述COM界面 #pragma comment 一般是静态加载DLL时(对应的头文件、DLL,和LIB缺一不可,并且生产的EXE没有找到DLL文件就会导致“应用程序初始化失败”) LoadLibr...

2020-03-30 10:52:38 1628

原创 InetNtop() 与InetPton() 的使用

windows 把Inet_ntop()和Inet_pton 进行了封装,就变成了InetNtop() 和InetPton(),没有再msdn 上找到使用的例子。自己操作了一下,给出再VS2017上使用的例子。这里只给出了Ipv4的使用例子,ipv6的后续给出#include "pch.h"#include <iostream>#include <Ws2tcpip.h&...

2019-01-16 16:06:42 11176

原创 MultiByteToWideChar 与WideCharToMultiByte

工作一年多来跟编码格式打了好几次交道了,感觉没有遇到的问题都有那么点不一样,window 编程中大多说的编码转换问题都通过A2T 解决了,但是最近遇到了一个A2T 解决不了的,然后就找到了他们的根MultiByteToWideChar 与WideCharToMultiByte其实这就是Unicode(宽字节)和ANSI(多字节)字符串转换的问题。MultiByteToWideChar:将多...

2018-11-16 16:35:29 493

原创 图解SSL/TLS认证流程

最近遇到一个问题,关系到SSL 握手,于是就把流程总结了下,画了个简单的流程图。红色部分为服务器端消息,紫色部分为客户端消息,黑色部分为双向认证需要的消息,绿色部分为某些情况下的特殊需求,这里不做详细的解释。下图内容都可以通过wireshare 抓包看到具体的内容,有什么不清楚的可以通过wireshare 抓包自己看一下就会一目了然了。简单来说SSL握手的目的就是为了获得客户端和服务器...

2018-11-16 14:46:30 3678 1

原创 NSIS 中的$DOCUMENTS

今天写程序时需要删除电脑文档下的一个目录,于是找到$DOCUMENTS。然后就陷入了困境,因为无论如何都删除不掉。后来发现了一个我忽略的很致命的问题:$DOCUMENTS 的定义路径为:D:\My Documents, 所以如果我想删除C盘中Documents 下的文件,用这个方法是行不通的。使用$PROFILE\Documents\***可以删除相关文件,这时又遇到了另外一个问题:$PROF...

2018-10-31 11:43:42 448

原创 NSIS之SetShellVarContext

SetShellVarContext 在NSIS的目录选择中是一个很神奇的存在,尤其是在多用户处理方面。下面来看看用途$STARTMENU 开始菜单目录。该常量的内容(所有用户或者当前用户)取决于SetShellVarContext的设置。$SMPROGRAMS 开始菜单程序目录。该常量的内容(所有用户或者当前用户)取决于SetShellVarContext的设置。$SMSTARTUP...

2018-10-31 11:40:47 2300 2

原创 libcurl 的简单实用(一)

两种请求方式:Easy interfaceCURL* curl = NULL;curl_global_init() 初始化curl_easy_init() 获取一个句柄curl_easy_setopt() 设置参数url 地址 (必选项)curl_easy_setopt(curl, CURLOPT_URL, url);http 头 CURLOPT_HTTPHEADER...

2018-09-19 15:30:03 199

原创 一个小白的BAT 文件编写之路

修改工程代码的时候经常看到这个文件,也对里面的一些内容做过简单的修改,但是如果让我新增一个功能时,对语法等还是有一些困惑的。首先什么是BAT文件?BAT文件也就是我们常说的批处理文件。批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑...

2018-09-07 12:40:47 19061 1

原创 HTTP 之chunked 编码

分块传输编码(Chunked transfer encoding)是超文本传输协议(HTTP)中的一种数据传输机制,它允许HTTP由网页服务器发送给客户端应用的数据可以分成多个部分。使用限制:分块传输编码只在HTTP协议1.1版本(HTTP/1.1)中提供。通常情况下,HTTP应答消息中发送的数据是整个发送的,Content-Length消息头字段表示数据的长度。数据的长度很重要,因为客户...

2018-09-06 20:00:35 16612

原创 键盘上的滚动锁定键

今天心情非常不好,工作用的键盘又出幺蛾子。双显示器,一个鼠标,一个键盘,然后发现键盘只能在一个显示器上正常使用,另外一个显示器上失效了,真是事上加事。查看了一下键盘,发现键盘上亮了一个不常用的灯,就是小键盘上面有三个灯,一个是小键盘的控制灯,一个是大写打开的灯,另外的那个就是之前从来没有使用过,但是这是亮起的灯了,度娘了一下,发现这个灯应该是滚动锁定的灯(Scroll Lock),作用是按下此...

2018-09-05 11:09:23 3236

原创 动态链接库(DLL)的调用方式

个人理解动态链接库是封装好的,其他人可以直接调用的一种接口,实现函数等的共享。静态链接库和动态链接库在使用中的不同:静态链接库:lib中的函数被连接,并且全部实现都被字节包含在最终生成的EXE文件中。动态链接库:dll 不必包含在最终的exe 中,静态调用时仅把函数名、变量名、类名等链接到exe 文件中,只有在运行时才从动态库中导入到可执行文件中。动态调用时exe 文件执行时可以直接动...

2018-08-21 11:58:27 2810

原创 NSIS 安装路径与删除文件夹

安装路径:设置安装路径InstallDir "$PROGRAMFILES\"从注册表中检测安装路径InstallDirRegKey HKLM 具体的路径 SetRegView: 注册表命令的注册表查看SetRegView 32;允许安装程序在X32 中访问注册表的键值SetRegView64;允许安装程序在x64 中访问注册表键值它将影响 DeleteRegKe...

2018-08-16 13:42:30 9519 2

原创 template with C linkage

编译过程中一直遇到error: template with C linkage困扰了我很久,后来才发现问题的所在,我使用的是C++ 和C 混用的项目,其中有一部分头文件在extern “C” 里面,还有一部分头文件在extern "C" 外面,我添加一个C++ 的头文件,但是错误的将头文件写在了extern "C" 里面,所以会出现该错误。so,我添加什么的都文件呢,C++ S...

2018-08-10 13:35:37 9249 1

原创 HTTP 常用的方法

常用的请求方法:GET、HEAD、POST、OPTIONS、PUT、DELETE、TRACE、CONNECTGET:请求指定的页面信息,并返回实体主体POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)正在传输的类型由Content-type 加以标记每次连接只处理一个请求 请求消息Request:客户端发送一个HTTP请求到服务器 请求行 请...

2018-08-09 15:42:51 713

原创 基础的sizeof()

sizeof() 是什么?sizeof是C/C++中的一个操作符(operator)其返回值类型为size_t,在头文件stddef.h中定义。这是一个依赖于编译系统的值,一般定义为typedef unsigned int size_t;sizeof()是干嘛用的?简单的说其作用就是返回一个对象或者类型所占的内存字节数。 如何使用sizeof()?sizeof() ...

2018-07-25 20:25:11 147

原创 利用openssl 库制作证书以及验证

RSA证书:CA证书openssl genrsa -out cakey.key 1024/2048   这个命令会生成一个1024/2048位的密钥。openssl req -new -x509 -key cakey.key -out cacert.pem -days 1234这个命令将用上面生成的密钥cakey.pem生成一个数字证书cacert.pem用户证书:op...

2018-07-25 19:31:56 990

原创 EnterCriticalSection 和 LeaveCriticalSection

EnterCriticalSection和LeaveCriticalSection是干嘛用的?多个线程操作相同的数据(内存块)时,一般是需要按顺序访问的,否则会引导数据错乱,无法控制数据,变成随机变量。为解决这个问题,就需要引入互斥变量,让每个线程都按顺序地访问变量。这两个函数就是实现这种功能的。作用域:不是针对于资源的,而是针对于不同线程间的代码段的什么是临界区:临界区是一种轻量级机制,在某一时...

2018-07-05 09:40:02 1542

原创 error C2026:string too big, trailing characters truncated

error C2026:string too big, trailing characters truncated (这里的characters 应该理解为chars)   字符串太长,超过2048个字符将被截去    sizeof(TCHAR)为2,sizeof(char)为1    这样的话该错误可以理解为:TEXT("")不超过1024个字符,“” 不超过2048个字符 ...

2018-06-15 11:51:26 4173

转载 Maximum String Length

The latest version of this topic can be found at Maximum String Length.Microsoft Specific**ANSI compatibility requires a compiler to accept up to 509 characters in a string literal after concatenation...

2018-06-14 15:37:18 488

原创 error 编号:C2001: newline in constant

 error C2001: newline in constant错误分析:(1)字符串常量、字符常量中是否有换行。(2)在这句语句中,某个字符串常量的尾部是否漏掉了双引号。(3)在这语句中,某个字符创常量中是否出现了双引号字符“"”,但是没有使用转义符“\"。(4)在这句语句中,某个字符常量的尾部是否漏掉了单引号。 (5)是否在某句语句的尾部,或语句的中间误输入了一个...

2018-06-09 14:45:12 8674 1

原创 USES_CONVERSION 和字节转换A2W, A2T, W2A, T2A

USES_CONVERSION 是什么?USES_CONVERSION是ATL中的一个宏定义, 定义用于编码转换如W2A,A2W使用的一些局步变量。用于编码转换(用的比较多的是CString向LPCWSTR转换),进行类型转换时不可缺少。在ATL下使用要包含头文件#include "atlconv.h"USES_CONVERSION它是在堆栈上分配空间的,也就是说你在你使用的函数未结束就不...

2018-06-09 14:33:50 5038

原创 使用TCHAR时遇到的问题(一)

error C2440: 'initializing' : cannot convert from 'char [16]' to 'unsigned short []'出现该错误的情况:TCHAR buffer[] = "mybuffer";原因:TCHAR变量所指的字符串没有经过TEXT转换。字符串默认是以ASCII码方式保存,因此若以UNICODE 方式保存,就必须TEXT()转换成UNICO...

2018-06-01 17:23:32 892

原创 写一个简单的shell 并定时执行遇到的问题与总结

下面是本小白写一个shell 脚本并定时执行时遇到的种种问题:Linux 下执行 .sh 文件提示permission deniedchmod 命令:改变权限chmod 777 *.sh777: 第一个7代表文件所属者的权限,第二个7代表文件所属者所在组的权限,第三个7代表其它用户的权限+ 增加权限x 执行chmod +x *.sh 增加该文件的可执行权限 改变...

2018-05-20 16:53:23 1329

原创 Windows 之定时器

创建一个timer 对象,如果函数调用成功,返回指向timer 对象的handle, 如果函数调用失败,可以使用GetLastError() 获取错误值HANDLE WINAPI CreateWaitableTimer(_In_opt_ LPSECURITY_ATTRIBUTES lpTimerAttributes, //安全描述符,可以设置为NULL_In_ BOOL bManual...

2018-05-14 14:15:02 2012

原创 Windows 之等待函数

WaitForSingleObject函数用来等待一个内核对象变为有信号状态:DWORD WaitForSingleObject(HANDLE hObject, //指明一个内核对象的句柄DWORD dwMilliseconds); //等待时间(ms,可以指定为无限大,如果为0 表示函数根据测试同步对象的状态并立即返回)返回值:WAIT_OBJECT_0:内核状态处于已通...

2018-05-10 15:46:40 1779

原创 Windows 之命名管道(一)

什么是命名管道?命名管道是一种简单的进程间通信机制。这里就不贴官方的说法了,说一下我自己的理解吧。命名管道就像一个顶级的大佬,和很多菜鸟,这个大佬告诉菜鸟们自己的家在哪里,如果你们有事可以负责来找我,我会帮你们处理,但是不会主动去找你们询问你们有什么事情,然后大佬就在家里等着了,如果菜鸟有事情,就找一条路去找大佬,解决完了就关闭这条路,当大佬想退休不干的时候,就把自己家的地址给删除了。如何...

2018-05-10 14:26:41 4132

原创 windows 之服务程序

Windows 服务由三部分组成:1.一个服务可执行文件;2.一个服务控制程序(SCP);3.服务控制管理器(SCM),负责在 HKLM\SYSTEM\CurrentControlSet\Services 下创建服务键值。用户可通过 SCP 控制服务的启动、停止、暂停等,SCP 会通过 SCM 调用服务程序。由于windows服务不需要界面,所以大部分程序为win32控制台应用程序,所以程序主函数...

2018-05-10 09:33:47 198

原创 windows 之时间函数

GetTickCount() 最小间隔大约为15ms, 想求ms 的精确值时该函数不可用。CPU占有率高,只能用于要求不该的延时程序中。 timeGetTime() 改时间为从系统开启算起所经过的时间。最小间隔大约为5ms,调用DWORD timeGetTime(void) 函数之前必须将 Winmm.lib 和 Mmsystem.h 添加到工程中,否则在编译时提示DWORD timeGe...

2018-05-04 10:06:26 6589

空空如也

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

TA关注的人

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