- 博客(38)
- 收藏
- 关注
原创 java 编译时出现'\ufeff' 编码错误
使用QtCreator 编写Android 上的java程序时,编译总是出现'\ufeff' 错误。解决办法:取消该java文件的UTF-8 BOM,使用无BOM编码。在QtCreator 工具-> 选项 -> 文本编辑器 -> 行为 中,将UTF-8 BOM 选项选择为 总是删除。或者用文本编辑器打开该java文件,选择无BOM的UTF-8保存。 ...
2018-05-11 11:32:01 1143
原创 QML中与Loader source 中的signal与property交互问题
主要内容:1. Loader中的signal信号交互;2. Loader中的property属性交互;看如下代码://LoadedModule.qmlimport QtQuick 2.0Rectangle { id:root; width: 200; height: 100; color: "blue"; property
2016-07-29 11:00:42 3163
转载 串口通信编程--多线程异步方式
目录一串口通信基础 1.1串口通信原理与特点 1.2串口通信的传输方式 1.3串口通信的同步技术 1.4串行接口标准 二 API函数实现串口通信 2.1打开串口 2.1.1串口是否有驱动 2.1.2连接串口 2.1.3串口逻辑端口号大于10无法打开问题 2.2串口配置 2.2.1设置缓冲区大
2015-08-29 22:20:51 868
转载 如何使用vs2008 C#程序联合调试C++dll
调试方法:【dll工程和调用dll的exe工程在同一个解决方案中】dll工程,属性-配置属性-调试-把命令 改为调用该dll的C# exe工程的bin\Debug\*.exedll工程,属性-配置属性-调试-把调试器类型 设置为混合dll工程,属性-配置属性-常规-把输出目录设置为调用该dll的exe工程的bin\Debug目录下在dll工程中打好断点,然后重新生成dll工程,为了
2015-05-24 22:32:23 580
转载 关于THREADINFO结构
线程为窗口维护一个threadinfo结构, threadinfo数据结构: ------------------ |登记消息队列指针| ------------------ |虚拟输入队列指针| ------------------ |发送消息队列指针| ------------------ |应答消息队列指针| ------------------
2015-04-03 13:22:19 1646
转载 x86—EFLAGS寄存器详解
鉴于EFLAGS寄存器的重要性,所以将这一部分内容从处理器体系结构及寻址模式一文中单独抽出另成一文,这部分内容主要来自Intel Developer Mannual,在后续的内核系列中遇到的许多和EFLAGS寄存器有关的内容将直接从本文引用。众所周知,IA-32体系结构为通用系统(general system)提供了16个基本的程序执行寄存器:包含一些通用目的寄存器(General-purpo
2015-04-02 17:30:32 889
转载 Qt+CodeBlocks+MinGw环境配置
1、下载Code::Blocks,安装到d:\CodeBlocks2、下载MinGw4.4.0,安装到d:\CodeBlocks\MinGw3、配置环境变量右键“我的电脑”“属性”, 选择“高级”,“环境变量”,在“用户变量”中添加Mingw;点击“新建”,新建三个变量Path,Include,LibPath=D:\CodeBlocks\
2015-03-31 18:48:40 1159
转载 CLR内存管理之释放非托管资源
上篇文章中我提到,CLR通过栈指针给变量分配内存空间,通过GC来释放不再引用的内存空间。GC虽然减少了程序员处理内存的困难,但它也有局限性,它不能处理像文件句柄、网络连接、数据库连接这样的非托管资源。在定义一个类时,我们使用两种机制来自动释放非托管资源:1,声明一个析构函数(或终结器finalizer),作为类的一个成员2,在类中实现System.IDisposable接口
2015-03-10 10:29:28 848
转载 C#条件编译选项:Conditional(代替#if...#endif)
#if (Debug && Trace) #define DebugAndTrace#endifusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Diagnostics;namespace ConsoleApplicati
2015-02-02 10:18:41 530
转载 C#实现多国语言的界面切换
在PictureStudio中,我需要实现多国语言的界面切换,而且切换各种语言版本的时候希望程序是动态的加载语言,不希望切换语言后重新启动程序。实现这样的功能可以有很愚蠢的方法,比如说你可以在程序中为界面上的所有国家的文字信息,在代码中进行赋值,你可以想像这样的做法是可以的,但绝对是愚蠢的,代码不应该写得这么丑陋。如果需要实现10个不同语言的版本,那你的代码中每一个涉及到界面文字的控件都要
2015-01-19 09:30:19 2883
转载 Windows启动过程详解
我们每天都在和Windows打交道,很多人可能每天都要面对多次Windows的启动过程,可是您知道在Windows的启动过程背后,隐藏着什么秘密吗?在这一系列过程中都用到了哪些重要的系统文件?系统的启动分为几个步骤?在这些步骤中计算机中发生了什么事情?这些就是本文试图告诉您的。本文的适用范围随着技术的发展,我们能够见到的计算机硬件种类越来越多。以计算机上最重要的组件CPU来说,目前
2015-01-18 21:57:22 1574 1
转载 多线程的那点儿事(之C++锁)
编写程序不容易,编写多线程的程序更不容易。相信编写过多线程的程序都应该有这样的一个痛苦过程,什么样的情况呢?朋友们应该看一下代码就明白了,[cpp] view plaincopyvoid data_process() { EnterCriticalSection(); if(/* error
2015-01-14 11:02:04 510
转载 Android中的TabHost
介绍 有时,我们想在一个window中显示多个视图,这时就需要用到Tab容器。在Android里它叫TabHost。使用TabHost有两种方式:在相同的activity中使用TabHost导航多个视图使用TabHost导航多个Activity(通过intents)Tab应用的结构TabHost的Activity的结构如下:先看个示例:layou
2015-01-05 09:43:18 590
转载 Windows 64编程中寄存器的使用
下面是摘自 MSDN 的文章,在 Win64 下的 registers 用途RegisterStatusUseRAXVolatileReturn value registerRCXVolatileFirst integer argumentRDXVolatileSecond integer
2014-12-20 09:56:28 1717
转载 谈谈对APC的一点理解
谈谈对APC的一点理解异步过程调用(APCs) 是NT异步处理体系结构中的一个基础部分,理解了它,对于了解NT怎样操作和执行几个核心的系统操作很有帮助。1) APCs允许用户程序和系统元件在一个进程的地址空间内某个线程的上下文中执行代码。2) I/O管理器使用APCs来完成一个线程发起的异步的I/O操作。例如:当一个设备驱动调用IoCompleteRequest来通
2014-12-06 10:31:16 867
转载 结构体中的冒号
题目: struct A { char t:4; char k:4; unsigned short i:8; unsigned long m; } sizeof(A)=?(不考虑边界对齐)7,如果考虑边界对其,则为8 以下段落引用来源:http://daixinghe.blog.163.com/blog/static/1843615920
2014-11-21 14:31:39 711
转载 Lua 与C交互
Lua和C之间的交互(一) Lua 调C函数 1. 什么样类型的函数可以被Lua调用 typedef int (*lua_CFunction) (lua_State *L); 2. 符合类型的函数怎样处理后才可以被Lua调用使用lua_register或者 lua_pushfunction和lua_setglobal
2014-11-13 20:48:54 569
转载 C语言宏定义技巧(常用宏定义)
1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef unsigned char boolean; /* Boolean value type. *
2014-11-05 14:08:29 641
转载 SEH异常处理学习总结
前一段时间,在看异常处理一章内容的时候,发现这一部分还真的挺有尿水:)所以上网搜了一下有关内容,呦嗬,还挺丰富的。当然有些自己还是看不懂,现在就将这些宝贝拿出来跟大家共享一下。首先我们看一下使用异常处理的几种情况:A. 用来处理非致命的错误B. 对API函数的参数合法性的检验(假设参数都是合法的,只有遇到异常的时候进行合法性检验)C. 处理致命错误(退出时最好的选择,但是有的时候可
2014-11-02 16:19:41 757
转载 Java:String、StringBuffer和StringBuilder的区别
1 StringString:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。String类的包含如下定义:[java] view plaincopy/** The value is used for character storage. */ private final char
2014-10-09 14:55:51 514
转载 从C#程序中调用非受管DLLs
从所周知,.NET已经渐渐成为一种技术时尚,那么C#很自然也成为一种编程时尚。如何利用浩如烟海的Win32 API以及以前所编写的 Win32 代码已经成为越来越多的C#程序员所关注的问题。本文将介绍如何从C#代码中调用非受管DLLs。如果某个函数是一个带有串类型(char*)输出参数的Win32 API 或者是DLL输出函数,那么从C#中如何调用它呢?对于输入参数的情形问题到不大,但如何获取从参
2014-09-09 14:41:47 497
转载 用C#绘制实时曲线图
在实际项目中我们经常需要绘制一些实时的数据图片,比如当前各公司的用水量、用电量还有播放声音视频时实时显示当前的声频等等,在我们最熟悉的任务管理器也有这么一个功能,用来表示当前CPU的使用频率,最近笔者刚刚给朋友完成了一个类似的功能图,用曲线图来实时表示一些实际数据,由于形象直观,很受客户欢迎。不过由于某些原因,本人不能将实际项目中的代码拿出来给大家分享,只能模拟了一个简单的实现,代码没有过多优
2014-09-09 10:00:15 1695
转载 【图】用ESP定律脱壳
用堆栈平衡定律脱壳【附图】用PEiD查壳,看【图1】 用OD载入,【图2】,注意ESP的值变化 F8单步,来到这,看见ESP值变化,在命令窗口中输入【图3】 继续F8,单步,走到我们想到的地方【图4】现在到了OEP了,接下来脱壳【图5】 看清【图6】,记下修正值,如果程序需要修复要用到这
2014-08-31 20:34:22 1555
转载 IDT系列:(二)中断处理过程,使用bochs调试IDT中的中断服务程序
一、中断处理的过程 根据Intel 64 and IA-32 Architectures Software Developer’s Manual 的介绍,在中断或异常产生是,CPU会将当前执行的指令(或下一条指令)在内存中的地址,也就是EIP的值,放入栈中,同时还会放入CS段寄存器和eflags标志寄存器的值等。根据当前的优先级不同(ring0或ring3,也就是执行与用户
2014-08-25 16:57:48 792
转载 IDT系列:(一)初探IDT,Interrupt Descriptor Table,中断描述符表
IDT,Interrupt Descriptor Table,中断描述符表是CPU用来处理中断和程序异常的。 一、有关IDT的基本知识1、中断时一种机制,用来处理硬件需要向CPU输入信息的情况。 比如鼠标,键盘等。2、中断和异常的产生是随机的,在CPU正常运行过程中随时可能产生。CPU的中断处理机制3、中断可以由硬件产生(称为外部中断),也可以由软件
2014-08-25 16:55:17 719
转载 驱动调试中怎么样让windbg停在DriverEntry
一般说来,调速驱动程序分为两种:1.存在PDB文件的调试:这里的PDB文件其实就是调试符号文件,假如我们调试的这样的文件,我们可以再windbg中使用 :bp 驱动名!DriverEntry,这个时候当加载驱动的时候,程序就会断在入口了。2.没有PDB文件的调试:在调试别人的驱动程序时,也就是自己只有bin,并且在这个bin没有PDB文件,以及你没
2014-08-06 10:41:33 672
转载 如何使用windbg在驱动加载时下断
首先说说应用层的调试吧.当我们在调试windows可执行程序的时候,通过将PE文件头中的ImageBase和AddressOfEntryPoint相加,从而得出第一条指令的地址.针对这个地址下断之后目标程序就中断在了了入口处.但是这个方法在驱动调试的时候却有心无力.这是因为可执行程序都是首先被加载到各自的私有地址空间,他们不会有地址冲突.然而驱动程序运行在内核里面,所有的驱动程序共享一个地址空间.
2014-08-06 10:31:22 754
转载 c++ 中__declspec 的用法
c++ 中__declspec 的用法语法说明:__declspec ( extended-decl-modifier-seq )扩展修饰符:1:align(#) 用__declspec(align(#))精确控制用户自定数据的对齐方式 ,#是对齐值。e.g__declspec(align(32)) struct Str1{int
2014-07-03 10:09:08 446
转载 VS2012 + WDK8.0 + Win8调试内核驱动程序(一)
Windows操作系统内核驱动程序的调试一直都显得比较复杂,官方没有集成调试环境,只能使用WinDbg这些调试工具,且需要进行繁琐的设置。也有大牛开发VisualDDK这样的工具,很大程度上方便了大家的驱动开发。驱动新手一般都得在网上搜索+动手实验(实际上中文网站的驱动程序资料屈指可数),花个十天半个月先学会搭建开发调试环境,无形中造成了入门的高门槛。Visual Studio 2012的
2014-06-30 16:54:36 898
转载 Windows消息大全
Windows是一消息(Message)驱动式系统,Windows消息提供了应用程序与应用程序之间、应用程序与Windows系统之间进行通讯的手段。应用程序要实现的功能由消息来触发,并*对消息的响应和处理来完成。Windows系统中有两种消息队列,一种是系统消息队列,另一种是应用程序消息队列。计算机的所有输入设备由 Windows监控,当一个事件发生时,Windows先将输入的消息放入系统消息队列
2014-06-24 10:09:36 477
转载 TortoiseGit 使用教程
git的使用越来越广泛使用命令比较麻烦,下面讲解一下tortoisegit的使用先下载安装git(msysgit)和tortoisegit,安装后提示重启电脑,不解释1.找一个文件夹做仓库这里用repository\shared.gif,空白处点击右键出现以下菜单,创建共享仓库在弹出的对话框勾选make it bare 第一次
2014-06-05 22:01:02 661
转载 插入排序,二分插入排序,希尔排序思想与比较
直接插入排序的基本方法:每步将一个待排序的元素,按其排序码的大小,插入到前面已经排好序的一组元素的适当位置上去,直到元素全部插入为止。插入排序(insert sorting)思想:当插入第i个元素时,前面的v[0],v[1],v[2]......v[i-1],已经排好序了.这时用v[i]的插入码与v[i-1],v[i-2],......排序码进行比较,找到插入的位置即插入v[i],原来位置上的
2014-06-05 10:37:19 496
原创 VS2012调试符号设置(调试时自动加载符号表PDB)
用VS调试的时候,在输出框会输出xxx.dll查找不到PDB。。。导致我们调试的时候
2014-05-29 20:00:41 5979 1
转载 通过修改程序解决win7下应用程序兼容性助手弹出
在win7和vista下,有一个系统兼容性助手功能,利用VS2008开发的程序在运行时,总是弹出应用程序兼容性助手提示框,非常烦人,事实上我们的程序兼容性是没有问题的,只不过是在程序中没有指定应用程序兼容的操作系统,所以导致了这一问题。 .menifest文件是一个随工程编译产生的xml文件,作用是为操作系统提供了对应用程序部分信息的描述,每个exe程序或者dll都必须有一
2014-05-25 20:09:13 848
转载 #pragma warning(n)支持
以下是D3D从VS2003移植到VS2005时遇到的安全警告:warning C4996: 'wcscpy' was declared deprecatedsee declaration of 'wcscpy'Message: 'This function or variable may be unsafe. Consider using wcscpy_s instead. T
2014-05-24 14:38:25 497
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人