
技术心得分享
文章平均质量分 74
yoyotiogo
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++下的字符集转换/宽窄字符转换/UTF-GBK转换
使用C++做开发时,经常需要用到编码字符转换。比如,Windows下,为了多语言的支持,API调用一般都推荐采用宽字节API(即W后缀API),但是在使用类似tinyXML,JSON解析等三方库的时候,有只能使用窄字节字符串。又或者在本地使用API获取到的为GBK或UTF16字符串,而通过网络向服务器传输数据时,有需要使用UTF8字符串等,都需要用到字符集转换。原创 2023-08-22 23:23:13 · 860 阅读 · 0 评论 -
通过安全日志读取WFP防火墙放行日志
之前的文档中,描写了如何对WFP防火墙进行操作以及如何在防火墙日志中读取被防火墙拦截网络通讯的日志。这边文档,着重描述如何读取操作系统中所有被放行的网络通信行为。读取系统中放行的网络通信行为日志,在win10之后的操作系统上,也可以通过前一篇提到的读取阻断日志的方式进行读取(以FWPM_NET_EVENT0.type字段区分),但是在较老的系统中却不支持直接读取。为了保持系统兼容性,可以通过读取操作系统安全日志(EventId:5156)的方式进行网络通信日志的采集。原创 2023-08-20 22:35:31 · 2392 阅读 · 0 评论 -
应用层读取wfp防火墙阻断记录
之前的文档中,描写了如何对WFP防火墙进行操作[链接在此],这篇文档中,描述如何获取WFP防火墙进行阻断的操作记录。原创 2023-08-16 00:32:14 · 753 阅读 · 0 评论 -
WFP防火墙在应用层的增删过滤器操作
WFP防火墙的作用WFP防火墙是在Vista/Win2008之后的操作系统中才引入的一套流量管控平台。提供一套API接口供开发人员调用。应用层和驱动层都有不同的模块可以调用。用于取代之前的LSP过滤器、TDI过滤器、NDIS过滤器等。通过WFP API,可以实现防火墙、网络管控工具等流量管控服务。使用WFP防火墙时注意的事项WFP防火墙仅在Vista/Win 2008以后的系统中方可生效。在Vista/Win 2008中,过滤器的添加不支持"或"策略。如果需求中包含对个IP段、多个端口号、多个协议原创 2021-04-25 01:17:57 · 3178 阅读 · 2 评论 -
QT VS Tool添加单元测试项目
配置步骤我的环境同工程下的两个项目,QUnitTestDemo为待测试项目,QUnitTestDemoUnit为单元测试项目配置步骤新建单元测试项目,项目类型可以随意定,但是最好是基于QT的项目,没有特殊要求可以选择QT空项目,需要界面展示也可以选择GUI项目增加单元测试类,继承自QObject即可。执行测试的函数可以定义为private slots类型,QTest会依次对每一个...原创 2020-03-25 19:09:27 · 1694 阅读 · 6 评论 -
Android Studio v.3.6.*在设置中取消代理无效的问题
问题描述之前因为某些原因在Android Studio中设置了代理,今天代理失效,打开项目后,项目提示更新失败,HttpConnect错误,错误描述为无法连接到之前设置的代理。进入Android Studio中,使用File——Setting——Appearance&Bahavior——System Settings——HTTP Proxy中取消代理(设置为No Proxy),保存设置,...原创 2020-03-10 14:27:19 · 1420 阅读 · 0 评论 -
关于多线程中QT信号槽的异步问题
处理结论链接参数参数描述Qt::AutoConnection自动处理,缺省参数,在发送端与接收端处于同一线程时,等同于Qt::DirectConnection,否则自动使用Qt::QueuedConnectionQt::DirectConnection最终处理效果类似于回调函数,槽函数于信号发送者处于同一线程Qt::QueuedConnection槽函数不会...原创 2019-10-16 01:38:34 · 1457 阅读 · 0 评论 -
关于微软Detours包编译和静态链接
<br />微软Detours库可以从:http://ftp.research.microsoft.com/downloads/d36340fb-4d3c-4ddd-bf5b-1db25d03713d/DetoursExpress.msi? 下载到,现在的最新版本应该是2.1版本。<br /> <br />只说两点卡过我的地方:<br />1、如何编译。<br /> 网上一般的解释是只要安装过VC或者VS的计算机,在detours的src目录下使用nmake就可以成功编译。我想,这样实验的原创 2010-08-08 14:51:00 · 1474 阅读 · 0 评论 -
通过GBK编码提取中文汉字的拼音首字母
通过GBK返回来确定中文汉字的拼音首字母 /** * 返回首字母 * @param strChinese 到转换的字符串 * @param bUpCase 是否返回大写 * @return */ public static String getPYIndexStr(String strChinese, boolean bUpCase){转载 2017-09-20 11:06:45 · 1916 阅读 · 0 评论 -
PermissionsDispatcher 使用说明
PermissionsDispatcher注解类的一些说明以及容易用混的地方原创 2017-10-25 11:50:04 · 804 阅读 · 0 评论 -
Kotlin最初接触时碰的坑
kotlin调用ButterKnife (gradle更新后,ButterKnife不再支持,Kotlin使用的库KotterKnife等待发布) (KotterKnife:https://github.com/JakeWharton/kotterknife)// app/build.gradle中添加相关配置引入ButterKniferdependencies { imp...原创 2017-12-30 15:46:12 · 1057 阅读 · 0 评论 -
TextView显示富文本方式总结
Android开发的过程中,经常需要用到富文本的展示。这里就总结一下,如何使用TextView展示富文本内容。个人非常喜欢使用。如果有其它更好的展示方法,请来者在留言中告诉我,互相学习,共同进步TextView 展示富文本的依赖基础SpannableString用于富文本修饰的文本类,实现 CharSequence接口,内容不可修改,可以被TextView直接加载。Spanna...原创 2018-08-21 00:20:54 · 4067 阅读 · 1 评论 -
BUG描述规范
导语 bug描述的宗旨是明确,清晰BUG标题BUG标题要明确包含三要素:位置、操作、现象 位置:细致到产品需求中的模块,比如“xx页面”操作:明确操作内容,语句表达明确,避免歧义,涉及到数字的操作,尽量明确数字,避免模糊的“多次”、“长时间”之类的描述现象:原创 2019-02-12 10:11:52 · 1001 阅读 · 0 评论 -
关于windows自启动
<br />个人认识的windows启动过程。。。<br />我把windows启动看成三部分,windows引导过程、内核加载过程、用户登录会话建立过程。<br /><br />一:windows引导过程<br /><br /> 当机箱接通电源,首先得到控制的是BIOS代码。其中的功能主要有两个:一是执行必要的硬件检测工作,二是允许用户通过一些功能键来配置当前系统的硬件设置(BIOS设置)。。。<br /><br /><br />完成这两个功能之后,BIOS将控制权交给硬盘主引导记录(MBR),MB原创 2010-08-08 14:58:00 · 827 阅读 · 1 评论 -
简记:关于windows进程间通信的各种方式对比(上)
<br /> 晚上到现在,总算是搞懂了一些。。略微简记一下,等把剩下的东西也完全搞懂了,好好的用代码来感受一下各种通信方式的优劣。此乃后话,不多提也罢。。<br /> 利用windows消息机制,向无窗体的线程发送消息来达到异步通信的方式一直没有搞定。。主要的原因是,1、windows默认的WM_COPYDATA不支持在异步环境下的通信。2、WM_COPYDATA在windows消息机制中是利用命名管道来传输数据。而我自定义的消息,无法(至少我没有做到)通过管道传输数据,仅仅是实现了基础数据传输,无原创 2010-08-08 14:59:00 · 917 阅读 · 0 评论 -
简记:关于windows各种进程间通信方式的对比(下)。。。
<br />上下之间拖了好几天。。我觉得以后我做事情,都应该尽量把事情收个结尾,否则这次放下的事情,就不知道什么时候才能再拾起来。。即使勉强拾起来了。也是显得文不答意,失去了本来的目的。。<br /> <br /> 开始本来以为除了上面四种方式之外,应该没有什么好用的进程见通信方式了。。可刚才我翻了翻资料,发现我错了。至少有三种常用,或者是曾经常用的方式,我没有列入其中:SIGINT方式。。邮槽。。还有DCOM通信模式。。<br /> SIGINT属于比较早的版本。。在MSDN里面明确说明,在所原创 2010-08-08 15:00:00 · 994 阅读 · 0 评论 -
NDK图形函数在某些机型下显示花屏的问题
NDK使用ANativeWindow渲染surface,大致代码如下:ANativeWindow *nativeWindow = ANativeWindow_fromSurface(env, surface);if (nativeWindow == 0) { LOGE("ANativeWindow_window_from_surface error;env[0x%x] surfac原创 2016-07-04 17:10:50 · 2564 阅读 · 0 评论 -
AndroidStudio 放弃Gradle使用Android.mk
默认你的工程接口如图所示首先配置好NDK开发目录,在build.gradle的defaultconfig中配置好ndk选项然后,在build.gradle(app)文件的android结构下,加入以下配置: sourceSets.main{ jniLibs.srcDir 'src/main/libs' jni.srcDirs = []原创 2016-03-30 22:59:38 · 6406 阅读 · 0 评论 -
Android ndk 字符串传参
ndk开发的过程中,Android(Java)与JNI(C/C++)之间,由于参数类型无法互通,所以在传参的过程中,会遇到不少的麻烦。其中我感觉最麻烦的要数字符串类型的传参从JAVA传字符串到C++上层JAVA数据类型String对应NDK为jstring类型,上层传参的方式和普通的java函数间调用并没有什么区别,重点是底层函数,如何将上层传来的jstring原创 2016-03-30 22:37:18 · 1631 阅读 · 0 评论 -
Android studio编译NDK
修改local.properties(SDK Location),添加“ndk.dir=xxxxxxx”,xxxx为本地ndk目录,特殊符号需要用'\'转意修改gradle.properties(Project Properties),添加'android.userDeprecatedNdk=true',启用ndk编译(纠错:此处应该为:android.useDeprecatedNdk原创 2016-03-30 22:34:45 · 842 阅读 · 0 评论 -
Android 自定义 declare-styleable 的format
declare-styleable 格式定义方法一览表 类型描述 字段名称 定义方式举例 调用方式举例 资源ID reference <attr name = "backgro原创 2015-12-25 16:04:26 · 680 阅读 · 0 评论 -
DJango 1.8 配置静态资源文件可访问
1、在settings.py中加入静态文件的定义STATIC_URL = '/static/' //设置STATIC_URL为存储静态文件的路径(基于根目录)STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"),)// 配置存储静态文件的路径映射值,这个值用于模版引用路径的转换2、在urls.py中添加静态文件请求的路径原创 2015-04-16 16:15:11 · 4681 阅读 · 0 评论 -
python34之殇——DJango连接Mysql数据库
系统环境:64位 windows 7 + python34 + Django 1.8问题描述: 因为MySQLdb不兼容python3.x,导致DJango使用django.db.backends.mysql连接mysql数据库时,出现启动网站报错。解决方法: pyMySQL可以用于python3.x下mysql数据库的连接,可以作为原创 2015-04-16 13:14:42 · 928 阅读 · 0 评论 -
Flex在IFrame组件之下JS和as的相互调用
Flex嵌入在页面中时,JS和as的相互调用是比较常用的技巧。在普通嵌入下,JS和as相互调用的资料比较常见import flash.external.ExternalInterface;引入ExternalInterface即可解决详见:http://blog.youkuaiyun.com/qq1113130712/article/details/41007009在嵌入IFrame的情原创 2014-11-11 10:04:10 · 1555 阅读 · 0 评论 -
数据库设计流程
数据库设计流程,可以分为五步:规划需求分析概念设计逻辑设计物理设计规划规划就是指考虑好建立数据库的必要性和可行性,明确数据库在整个项目中扮演的角色以及与其它干系角色之间的关系。需求分析需求分析就是通过调研,了解这个项目对数据库的数据和处理能力的要求,这个阶段可以出一个简单的需求说明书。需求说明书需要包含数据库可能要涉及什么数据、这些数据有什么特征、这原创 2014-10-28 22:02:37 · 656 阅读 · 0 评论 -
Flex连接FMS播放一帧图像后停止
Flex连接FMS播放一帧图像后不继续播放。涉及到关键参数:NetStream.bufferTimerSDK文档上说,如果bufferTimer没有设置,默认为0.1,但实际操作中发现,如果该值没有设置,在调试模式中,默认为0,在播放的过程中,会造成链接成功,显示出第一个关键帧后,不在继续显示,图像卡顿在第一张图像。原创 2014-10-28 21:41:34 · 730 阅读 · 0 评论 -
WINDBG分析CrashDump配置
该文章参考网上内容,加上一些些自己的使用经验。Ø 配置符号路径WinDbg主菜单——File——Symbol Search Path输入框中的输入规则如下:1)配置程序对应symbol文件的路径2)多个路径之间使用分号隔开3)配置微软符号文件的路径: srv*"D:\Symbols"*http://msdl.micros原创 2013-11-07 00:55:59 · 781 阅读 · 0 评论 -
后台截屏
HBITMAP GetWindowBitmap(HWND hWnd) { typedef BOOL ( __stdcall *pPrintWindow )(HWND ,HDC ,UINT ); RECT rect; HMODULE h; h = LoadLibrary( "user32.dll" ); pPrintWindow p; if( h )转载 2013-08-27 11:53:34 · 792 阅读 · 0 评论 -
对pos搜索函数的研究以及优化思路···
<br />代码摘自delphi的Pos函数。。。总的来说,若我理解无误的话,该函数才用的搜索机制并不是非常高明。。。只是简单的使用了一个倒序搜索,仅此而已。。。但其速度优于BM,应该是由于其对CPU的优化。。。<br /> <br /> 首先先介绍一下register 调用约定: 从左到右,优先使用寄存器(EAX,EDX,ECX),然后使用堆栈!这个调用约定和C++里面的__fastcall有些类似,不同的是__fastcall优先使用的只有ECX和EDX。这两种调用约定应该说是最快速的调用约定。。<原创 2010-12-09 03:50:00 · 517 阅读 · 0 评论 -
YUV 与 RGB的转换
RGB 转换成 YUV Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16 Cr = V = (0.439 * R) - (0.368 * G) - (0.071 * B) + 128 Cb = U = -( 0.148 * R) - (0.291 * G) + (0.439 * B) + 128 YUV 转换成 RGB原创 2016-09-20 09:24:33 · 913 阅读 · 0 评论