- 博客(214)
- 资源 (19)
- 收藏
- 关注
原创 CString 与 CComVariant 互相转换
CString -> CComVariantCString strVar = _T("hello");VARIANT varValue;varValue.vt=VT_BSTR;varValue.bstrVal=(_bstr_t)strVar;CComVariant -> CStringCComVariant varResult;CString strResult;varResult.ChangeType( VT_BSTR );strResult = varResult.bstrVal;
2023-08-15 18:31:42 197
原创 收集一些Qt学习网站
Qt 官网https://www.qt.io 了解Qt最新资讯开发动态的窗口。Qt 资源下载http://download.qt.io 最新Qt安装程序可以在这里找到。Qt 博客者聚集地http://planet.qt.io 很多Qt大神都在里面。Qt 百科https://wiki.qt.io 这里Qt社区收集了多年来关于Qt的信息。Qt 文档https://doc.qt.io 在线版的帮助文档。Qt 论坛https://forum.qt.io 从桌面和移动到云..
2022-02-17 14:49:46 2220
转载 MFC应用程序中处理消息的顺序以及对话框关闭步骤
应用程序处理消息的过程:1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数3.WindowProc() 该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数4.OnWndMsg() 该函数的...
2021-03-22 15:39:17 1289
转载 Linux下指定so动态库的加载路径
一、库文件的搜索路径:1、在配置文件/etc/ld.so.conf中指定动态库搜索路径(需要添加其它库文件的路径,在文件的最后添加具体的路径即可 [ 如:/usr/local/lib ],添加后保存退出,然后在命令行ldconfig2、通过环境变量LD_LIBRARY_PATH指定动态库搜索路径(当通过该环境变量指定多个动态库搜索路径时,路径之间用冒号":"分隔)3、在编译目标代码时指...
2019-07-01 16:43:20 2494
转载 注册/反注册窗体类RegisterClassEx/UnregisterClass
所有窗体在创建前都必须注册窗体类,只有注册的窗体类才被系统认知并允许实例化,换句话说通过注册告诉进程窗体管理器此类窗体的属性如: 背景色,窗体上的鼠标样式以及窗体事件处理函数等; 有一些控件类系统自带了的可以不用注册即可实例化,在不需要时反注册掉,以便释放类占用的内存。(一) 函数声明 I). 类注册ATOM RegisterClassEx(CONST WNDCLA...
2019-04-18 17:59:38 2359
转载 TLS密码套件TLS_ECDHE含义
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 解构如下: ECDHE_RSA:密钥协商交换算法 ECDHE:使用基于椭圆曲线签密方案(EC, Elliptic Curve)的 Diffie-Hellman(DH)密钥协商协议。尾部的 E 为 Ephemeral 首字母,表示协商的是临时会话密钥。相对每次会话协商的临时密钥,证书中的公钥则是永久...
2019-04-08 14:57:15 7092
转载 Linux下的tar压缩解压缩命令详解
tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出下面的参数-f是必...
2019-03-15 17:35:23 222
转载 Linux 共享库LIBRARY_PATH, LD_LIBRARY_PATH 与ld.so.conf
1.Linux 共享库:LD_LIBRARY_PATH 与ld.so.confLinux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。(该路径在默认路径之前查找) 移植程序时的经常碰到需要使用一些特定的动态库,而这些编译好的动态库放在我们自己建立的目录里,这时可以将这些目录设置到LD_LIBRARY_PATH中。 当执行函数动态链接.so时,...
2019-03-05 11:15:02 322
转载 linux下永久设置LD_LIBRARY_PATH
LD_LIBRARY_PATH环境变量主要是用于指定动态链接器(ld)查找ELF可执行文件运行时所依赖的动态库(so)的路径,其内容是以冒号分隔的路径列表。 ld链接器将优先在该变量设置的路径中查找,若未找到则在标准库路径/lib和/usr/lib中继续搜索。 临时设置LD_LIBRARY_PATH环境变量的最佳方式是: 在执行你的程序前,先...
2019-03-05 11:14:03 5857
转载 Linux多线程的使用一:互斥锁
Linux多线程的使用一:互斥锁 多线程经常会在Linux的开发中用到,我想把平时的使用和思考记录下来,一是给自己做个备忘,二是分享给可能会用到的人。 POSIX标准下互斥锁是pthread_mutex_t,与之相关的函数有:1 int pthread_mutex_init(pthread_mutex_t * mutex , pthread_mutexattr_t * attr)...
2018-11-23 14:15:09 315
转载 MFC中对话框资源的复制
在工程中导入已建好的对话框,方法有三:法一:1、首先要生成一个*.ogx的文件。 方法:打开包含有所要加的对话框资源的工程(别的工程)。 在视图资源(ClassView)中鼠标右键点击所需的对话框的类(也可以是所需的类) 这时,你会看到右键菜单中有个“Add to Gallery”的选项。 选择这个选项,则*.ogx文件生...
2018-10-07 14:33:17 1505
转载 HMAC 原理
定义HMAC需要一个加密用散列函数(表示为H,可以是MD5或者SHA-1)和一个密钥K。我们用B来表示数据块的字节数。(以上所提到的散列函数的分割数据块字长B=64),用L来表示散列函数的输出数据字节数(MD5中L=16,SHA-1中L=20)。鉴别密钥的长度可以是小于等于数据块字长的任何正整数值。应用程序中使用的密钥长度若是比B大,则首先用使用散列函数H作用于它,然后用H输出的L长度字符串作为在...
2018-06-07 14:21:37 7021 1
转载 SQLITE3 使用总结
前序:这里要注明,我是一个跨平台专注者,并不喜欢只用 windows 平台。我以前的工作就是为 unix 平台写代码。下面我所写的东西,虽然没有验证,但是我已尽量不使用任何 windows 的东西,只使用标准 C 或标准C++。但是,我没有尝试过在别的系统、别的编译器下编译,因此下面的叙述如果不正确,则留待以后修改。下面我的代码仍然用 VC 编写,因为我觉得VC是一个很不错的IDE,可
2018-01-03 11:59:48 969
转载 TCP协议
1、TCP协议:TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于IP的传输层协议。TCP在IP报文的协议号是6。首先来看看OSI的七层模型:图1 OSI七层模型TCP工作在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,ARP 在第二层——Data L
2017-10-27 10:24:19 1329
转载 ActiveX控件实现安全的初始化和脚本
要想创建一个能够在IE中成功加载而没有“不安全”的警告或者错误提示信息的ActiveX控件,我们必须实现安全的初始化和脚本。基本上,所有要做的工作都是在DllRegisterServer 和DllUnregisterServer这两个函数中完成的。下面,我们就来一步步地将我们的ActiveX控件变成一个“安全的”控件。 1. 编辑XXX(此处为控件的工程名).cpp并添加如下的
2017-08-22 10:12:06 824
转载 ActiveX控件属性:自定义属性的使用
在很多场合下会存在这样的需求,那就是使用方在实际使用控件之前就想控件已经做了相应的处理比如加载的控件版本不正确等,或者需要在加载时才确定能够使用的功能集;这个时候传统的配置文件已经无法满足这种类型的需求了,往往的做法是在初始化控件的时候即做了相应的初始化,然后对自身的功能做了限制或者给使用方反馈,所以常常看到的是html标签中出现这样的写法:[html] view plai
2017-08-22 10:06:23 1868
原创 将PKCS12文件转成JKS
试了好几种方法都不行,使用下面的方法可以导入,在此记录一下。先将pkcs12解析出证书和私钥,注意私钥必须加密,可以使用rsa命令加密。将加密的私钥和证书组合在一起,格式如test.pem.通过portecle导入test.pem,主要导入时必须先导入证书链,否则无法导入。相关openssl命令 1、解析私钥pkcs12 -in mycert.pfx
2017-08-02 11:04:50 2305
转载 解决透明static控件后刷新问题
我相信很多VC程序员,都用过OnCtlColor来改变控件的底色,字体颜色等。但是static控件改变之后,就会照成控件不刷新的问题。HBRUSH CStadus::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, n
2017-07-17 10:34:59 1226
转载 字符集之间转换(UTF-8,UNICODE,Gb2312)
特搜集了UTF-8,UNICODE,Gb2312他们3个之间的相互转换.UTF-8: 3字节一个字符UNICODE: 2字节一个字符GB2312: 1字节一个字符例子:“你”字的UTF-8编码: E4 BD A0 11100100 10111101 10100000“你”的Unicode编码: 4F 60 0100111
2017-06-20 16:54:43 503
转载 Ansi,UTF8,Unicode编码
最近在写网络数据传输的程序,被各种编码搞的一塌糊涂,在这里简单记录如下:1. ASCII和Ansi编码字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为 a.单字节内码 -- Single-Byte character sets (SBCS),可以支持256个字符编码. b.双字节内码 -- Double-Byte
2017-06-20 16:50:28 469
转载 C++中使用JsonCpp
之前项目中我们客户端程序一直是使用XML与服务器通信,最近新增一些接口转向使用更简单的Json。我们都知道由于Json语法是 JavaScript 对象表示语法的子集。所以在Java,JavaScript等语言中使用起来是十分愉快的。在C++中我们使用跨平台的开源库JsonCpp也能愉快的玩耍Json。下载地址GitHub:https://github.com/open-sourc
2017-06-14 17:15:29 836
转载 二维码的生成细节和原理
二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下。供好学的人一同学习之。关于QR Code Specification,可参
2017-05-27 14:28:45 554
转载 在VS2008环境下的C++异常处理
在写DAServer的过程中,一直在重视报文逻辑处理,却没有认认真真地去思考异常处理的问题。曾经我发现我在所有的报文处理函数中均没有考虑报文长度的问题,让我内心不由地捏了一把冷汗。我在新增的故障录波及故障报告的目录报文中引入了报文长度检查,但是其他的类型报文我还是没有克服懒惰情绪,报文类型实在是太多了…… 我想,既然没有检查报文长度,那就把C++可能的异常Catch住就行了,等出了问题再
2017-05-10 14:56:50 2070
转载 正则表达式-连续多位相同字符判断的正则表达式
1. ([0-9])\1{5} 或 ([\d])\1{5} 连续相同的6位数字 如:333333([0-9a-zA-Z])\1{5} 连续相同的6位数字或字母 如:222222 cccccc ZZZZZZ([\d])\1{2}([a-z])\2{2} 连续相同3位数字后根连续相同的三位小写字母 如:222www([\d])\1{2}([a-z])\2{2}|([a-z])\3{2}
2017-05-10 14:03:22 34497 1
转载 windows 下boost 64 位和32位库的编译编译
理论上,本文适用于boost的各个版本,尤其是最新版本1.48.0;适用于各种C++编译器,如VC6.0(部分库不支持),VS2003,VS2005,VS2008,VS2010,V2012,gcc,arm-linux-gcc,C++ Builder等。先总结一下Windows系统。一、下载首先从boost官方主页http://www.boost.org/下载最新版boo
2017-04-24 14:48:09 2446
转载 VS2008编译boost正则表达式库Regex过程中的注意事项
目前,boost最新版本是:boost_1_63_0boost官网:http://www.boost.org/boost1.48.0源代码官方下载页面:http://sourceforge.net/projects/boost/files/boost/1.48.0/boost的使用参考: http://www.stlchina.org/twiki/bin/view.pl/Main/Bo
2017-04-24 14:40:04 960
转载 Boost库编译后命名方式
Boost库编译后命名方式from http://www.cnblogs.com/dementia/archive/2009/04/10/1433217.htmlBoost官网的《Geting Started On Windows》(http://www.boost.org/doc/libs/1_38_0/more/getting_started/windows.html)提到了B
2017-04-12 16:35:14 1177
转载 常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。给自己留个底,也给朋友们做个参考。一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数
2017-04-12 14:18:53 450
转载 源码方式向openssl中添加新算法完整详细步骤(示例:摘要算法SM3)【非engine方式】
openssl简介openssl是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。
2016-11-08 14:47:02 5760
转载 STL容器迭代过程中删除元素技巧(转)
1.连续内存序列容器(vector,string,deque)序列容器的erase方法返回值是指向紧接在被删除元素之后的元素的有效迭代器,可以根据这个返回值来安全删除元素。vector c;for(vector::iterator it = c.begin(); it != c.end();){if(need_delete()) it = c.erase(it); e
2016-09-05 11:25:02 585
转载 堆栈的工作原理
目录(?)[+]从一些基本的知识和概念开始开始讨论堆栈是如何工作的堆栈的建立 参数入栈 图2 返回地址入栈图3 代码跳转到被调用函数执行 EBP指针入栈 为局部变量分配地址图6通用寄存器入栈返回值是如何传递的堆栈帧的销毁函数的调用约定calling convention反编译代码的跟踪不熟悉汇编可跳过参考
2016-08-10 17:01:28 1157
原创 NSIS 安装包确保只能有一个安装实例运行
在.onInit里面添加如下代码:# 禁止多个安装程序实例 Begin System::Call 'kernel32::CreateMutexA(i 0, i 0, t "mysetup") i .r1 ?e' #注意最后的?e Pop $R0 #保存LastError返回值 ;System::Call 'kernel32::CloseHandle(i r1) i.s' #此
2016-08-10 14:05:02 1566
转载 协作安装程序应用一例co-installer
所谓“协作安装程序”,在ddk文档里面称作co-installer,有人将它翻译成“共同安装程序”。但是, 从ddk文档对co-installer功能的描述来看,我个人觉得翻译成“协作安装程序”更恰当些。 ddk文档对co-installer的描述:A co-installer is a Microsoft® Win32® DLL that assists in devic
2016-07-20 12:57:55 1476
转载 USB设备开发---- usb描述符概述
说到USB设备,不得不提到各种描述符(descriptors), 一般来说,描述符有如下几种: 1:设备描述符(Device Descriptors) 2:配置描述符(Configuration Descriptors) 2:接口描述符(Interface Descriptors) 3:端点描述符(Endpoint Descriptors
2016-03-31 17:42:28 2272
转载 在Linux中静态库.a和动态库.so 的创建和使用
我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。 1. 静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数
2016-03-16 11:50:49 3911
转载 微软符号服务器下载符号总结
微软符号服务器地址http://msdl.microsoft.com/download/symbols, 但是你手动在浏览器里面输入是访问不到的,他只提供给调试程序进行下载1、方法1: 使用vs进行下载,当然必须是vs2003以后的版本,通过attach到一个进程中或者启动一个程序进行调试,然后打开模块列表窗口,在列表中每一个模块进行右键,即可进行下载符号方法2: 使用windb
2015-12-16 13:28:28 9023
转载 CryptoAPI简介(二)
CryptoAPI函数使用“加密服务提供者”(CSP)完成数据加密、解密以及密钥的存储管理、所有的CSP都是相互独立的模块。理论上,CSP应该独立于特定的应用程序,也就是说所有的应用程序可以使用任何一个CSP。但是,实际上有些应用程序只能与特定的CSP协作。CSP与应用程序之间的关系类似于Windows GDI模型。CSP就类似于图形硬件驱动程序。密钥存储的安全性完全取决于CSP的
2015-11-30 14:53:59 3749
win7无法打开查看.hlp帮助文件解决办法
2012-08-29
ACE Programmer's Guide, The Practical Design Patterns for Network and Systems Programming.chm
2010-09-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人