自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

WinLin

男儿何不带吴钩

  • 博客(222)
  • 资源 (9)
  • 收藏
  • 关注

转载 QT学习笔记(四):在不同平台上部署QT程序概述

JUST FOR QT 4.6Deploying Qt ApplicationsDeploying an Qt application does not require any C++ programming. All you need to do is to build Qt and your application in release mode, followin

2012-02-02 15:41:17 1515

转载 QT学习笔记(三):在嵌入式Linux平台上部署QT程序

JUST FOR QT 4.6Deploying Qt for Embedded Linux ApplicationsThe procedure of deploying an Qt application on Qt for Embedded Linux is essentially the same as the deployment procedure on X1

2012-02-02 15:32:01 1353

原创 QT学习笔记(二):QWSServer class

1. QWSServer Class 为 Qt for Embeded Linux 封装了一个服务进程 .当你运行一个基于嵌入式平台的Qt程序时,它只能作为一个server或者连接到一个已经存在的server来运行。server和client进程有不同的职责: client进程执行应用程序特定的操作; server进程负责管理一个或多个client进程,同时负责指针操作,字符输入和

2012-02-02 15:07:21 8567

原创 QT学习笔记(一):QApplication class

1. QApplication class 控制着整个GUI程序的控制流和主要的配置。QApplication包含了“主消息循环 ”。    主消息循环会接受所有的窗口系统或者其他来源的消息,并且进行处理和分发;同时,QApplication 也控制    着该应用程序的初始化,终止化,以及会话管理(session management).  另外,QApplication 也控制着系统

2012-02-02 15:06:37 2959

原创 工作札记(二):设置Embeded QT程序鼠标指针为透明

设置鼠标透明:    QApplication a(argc, argv);    QPixmap pixMouse(32, 32);    pixMouse.fill(QColor(0, 0, 0, 0));    a.setOverrideCursor(QCursor(pixMouse));或:    直接一句:   a.setOverrideCursor(Qt::Bl

2012-02-02 11:49:26 1804

原创 工作札记(一)

工作中,总会遇到一些自己平时没有注意或者学习的知识点,很多都是十分实用的,在这里做一下札记,一边查阅。1. 嵌入式设备,往往都是使用flash作为储存设备的,对应的文件系统也有很多(jffs2 / yaffs / cramfs等),对于LInux来说,文件系统的最小单位是分区,不同的分区可以有不同的文件系统,所以,常常会根据主要功能的不同选择不同的文件系统来构建一个完整的嵌入式系统的文件系统。

2011-12-11 17:55:24 970

原创 Linux C 线程同步实例分析(三)

/**此文件用于展示多个线程同时访问临界资源,产生的意想不到的结果*/#include #include #include void* pthread_proc(void* arg){ int id=*(int*)arg; prin

2011-09-02 22:46:13 990

原创 Linux C 线程同步实例分析(二)

这是一个使用条件变量的例子,后面的附图很清楚的说明了整个过程中互斥量的加锁和解锁的过程。/**条件变量使用例程*/#include #include #include #include static pthread_mutex_t lock=PTHREAD_M

2011-09-02 22:44:49 1666

原创 Linux C 线程同步实例分析(一)

先举出一个同步的经典例子,生产者消费者. 让我感到欣慰的是在这个代码中,我看到了《OS原理》中PV原语的实现,挺激动的。/**简单的生产者 消费者模型*/#include #include #include #include #include #include

2011-09-02 22:39:08 2280 3

原创 《C++高级编程》--错误处理

• 什么是异常?异常是一种机制,利用这种异常机制,一段代码可以通知另一段代码发生了一种“异常”情况或错误条件,而不能再沿着正常代码的路径前进。• C中的错误处理C错误处理的标准就是使用整型的返回码和errno宏来通知程序出现了错误;许多C++程序也沿承了这种方法。但是,在不同的程序中,返回码和errno或许并没有一致的规范,即同样的数据可能代表不同的意义,这往往会导致错

2011-06-17 23:05:00 1149 1

原创 《C++高级编程》--揭开I/O的神秘面纱

一个好的I/O系统应该很灵活,而且易于使用。要做到灵活,就是要提供多态性,灵活的I/O系统支持通过多种设备的输入输出,比如文件和用户控制台;另外,好的I/O系统也应该提供错误处理功能。• 什么是流更一般的观点是,所有的流都可以看做是数据的清洗槽。不同的流只是方向以及与之关联的源和目的有所不同。每个输入流都有一个相关联的源;每个输出流都有一个相关联的目的。在C++

2011-06-17 23:03:00 939

原创 《C++高级编程》--有效的内存管理

1、在程序中使用动态内存有两个主要优点:• 动态内存可以在不同的对象与函数之间共享• 动态分配的内存空间大小可以在运行时确定2、malloc、free和new、delete• malloc和new的最大区别在于,new不仅会分配适当的空间,同时还会正确的构造对象;class Foo;Foo* myFoo=(Foo*)malloc(sizeof(Foo));Foo*

2011-06-17 23:01:00 945

原创 小记:其他函数中堆/栈分配的内存在本函数中不可用---错误举例

#include using namespace std;void test( int* ptr ) { int* tempptr=new int; *tempptr=15; ptr=tempptr; return; }int main( ) { int* ptr;

2011-06-14 23:46:00 1904 7

原创 Linux共享内存编程实例

/*共享内存允许两个或多个进程进程共享同一块内存(这块内存会映射到各个进程自己独立的地址空间) 从而使得这些进程可以相互通信。 在GNU/Linux中所有的进程都有唯一的虚拟地址空间,而共享内存应用编程接口API允许一个进程使 用公共内存区段。但是对内存的共享访问其复杂度也相应增加。共享内存的优点是简易性。 使用消息队列时,一个进程要向队列中写入消息,这要引起从

2011-06-04 15:44:00 32949 5

原创 Linux旗语编程实例

/*旗语是一个受保护的变量。对两个或多个进程共享的资源,它可以提供限制访问的方法。 Linux的旗语就是操作系统原理中的信号量,有PV操作。可以获得和释放旗语; 释放旗语会自动唤醒下一个等待获取旗语的进程。 旗语有两种类型: 二进制旗语:代表单个资源 计数旗语:用来代表数量大于一的共享资源 GNU/Linux中的旗语实际上是一个旗语数组。说是一个旗语

2011-06-03 13:27:00 2184

原创 Linux消息队列编程实例

/* 创建消息队列msgget( ) 调整消息队列的参数msgctl(msgid,IPC_SET,struct msqid_ds* ) 发送一条消息msgsnd( ) 接受一条消息msgrcv( ) 移除一条消息msgctl( msgid,IPC_RMID,NULL ) *//*创建一个消息队列,并调整其大小,发送一条消息 再取出该条消息,最

2011-06-03 13:23:00 1456

原创 Linux线程编程实例

<br /><br />/* 2.4GNU/Linux内核的POSIX线程库基于Linux进程实现(于1996年问世),在GNU/Linux进程模型的基础上构建的。 2.6内核使用了新的本地POSIX线程库,或称为NPTL(于2002年引入),比旧库有了很多改进,执行效率更高。 要想知道正在使用的是那个P(POSIX)线程库,可以使用如下命令: getconf GNU_LIBPTHREAD_VERSION 自己使用的为:NPTL 2.13.90 线程和进程的区别:

2011-06-01 22:50:00 917

原创 Linux进程编程实例

<br /><br />/*GUN/Linux进程有两种基本类型:内核线程和用户进程(注意一个是线程一个是进程)。 用户进程由fork()和clone()创建。内核线程是由内核中的kernel_thread()创建。 使用fork()创建子进程的时候,系统为它复制了父进程使用的内存部分映像,但是开始时他们都指向同一块内存, 但是把内存页面标记为copy-on-write。当任何一个进程试图向这些内存中写入数据时,就会产生一组新的内存页面由这个进程私有。 这提高了创建新进程的效率,因为

2011-06-01 22:44:00 707

原创 《C++高级编程》--理解C++疑难问题

<br /><br />1、引用• 可以把引用看成一种隐式的指针,它可以免除获取变量地址和对指针解除引用的麻烦;也可以把引用看作是原变量的另一个名字。• 除了类里面的引用数据成员以外,引用变量必须在创建时就进行初始化,否则出错。类的引用数据成员必须使用初始化参数列表进行初始化。• 除非引用指向一个const值,否则不能创建指向未命名值的引用: int& unnamedRef=5; //DOES NOT COMPLIE const int& unnamedRef=5; //Works a

2011-05-31 11:06:00 852

原创 Linux进程编程实例

<br /><br />/*GUN/Linux进程有两种基本类型:内核线程和用户进程。 用户进程由fork()和clone()创建。内核线程是由内核中的kernel_thread()创建。 使用fork()创建子进程的时候,系统为它复制了父进程使用的内存部分映像,但是开始时他们都指向同一块内存, 但是把内存页面标记为copy-on-write。当任何一个进程试图向这些内存中写入数据时,就会产生一组新的内存页面由这个进程私有。 这提高了创建新进程的效率,因为内存空间的复制推迟到发生写操

2011-05-30 17:03:00 2212 4

原创 Linux管道编程实例

<br /><br />/*管道 可以把管道想象为两个实体之间的单向连接器。注意,管道是半双工的, 如果需要全双工通讯,应该转而考虑套接字。 匿名管道又称管道,提供了一个进程与它的兄弟进程通讯的方法,只存在于父进程中; 命名管道,可以存在与文件系统中,任意进程都可找到它,使得不同先祖的进程也可以通讯。 #include <unistd.h> int pipe( int dfs[ 2 ] );创建匿名管道 int dup(int oldfd );创建一个文件描述符的副

2011-05-29 23:16:00 3681

原创 《C++高级编程》---模板递归

模板递归template recursion一、引入 我们前面编写的Grid类模板最多支持二维数组,当我们想要获得更多维的数组时,必须要重新编写代码和规划。正如N维数组是N-1维数组的数组,这里面存在这一个递归的定义,在模板中同样也支持模板递归。templateclass OneDGrid{public: OneDGrid( int inSize=kDefaultSize ); OneDGrid( const OneDGrid& src ); ~OneDGr

2011-05-29 23:11:00 2006

原创 Linux文件编程实例

<br /><br />//捕获fopen调用中的错误#include <stdio.h>#include <errno.h>#include <string.h>#define MYFILE "missing.txt"int main( ) { FILE* fin; fin=fopen( MYFILE,"r" ); if( fin==(FILE*)NULL ) {

2011-05-27 12:49:00 1009

原创 《C++高级编程》--类模板三种类模板参数

实际上有三种类型模板参数:类型模板参数、无类型模板参数和模板模板参数(以模板作为模板的参数)。1、类型模板参数类型模板参数是我们使用模板的主要目的。我们可以定义多个类型模板参数:templateclass Grid{...}同样,也可以为类型模板参数指定默认值:#include using std::vector;template > //注意空格class Grid{...}2、模板模板参数(template template parameter)就是

2011-05-27 12:45:00 11816

原创 《C++高级编程》--类模板

1、编译器如何处理模板代码?编译器遇到模板代码时,它首先进行语法检查,但是并不对模板进行编译(因为它不知道模板将用于什么数据类型)。编译器遇到模板实例化时,比如Grid myIntGrid;会使用int来代替T生成int版代码。同样,如果遇到其他类型,编译器也会生成另一个对应的代码版本。如果编程语言不支持模板的话,那么要为每一种类型都要编写独立的类,使用了模板以后,编写独立的类的工作就由编译器来做。如果程序中没有针对任何类型的模板的实例化,则永远也不会编译类的方法定义。并且你实例化了那种

2011-05-25 20:25:00 2991

原创 《C++高级编程》--改变类覆盖方法的特性

<br /><br />1、改变覆盖方法的返回类型:协变返回类型covariant returns type一般情况下,子类覆盖父类的方法时,是不允许修改函数返回类型的。CODE 1class Foo{public:virtual int overload( ) {cout<<"Foo's overload()/n ";return 1;} //返回类型intvirtual void overload( int i ){cout<<"Foo's overload(in

2011-05-23 23:27:00 2456

原创 《C++高级编程》关键字virtual的真相

1、如果不使用virtual修饰父类中将要被覆盖的方法的话,那么在子类中就会出现“隐藏而不是覆盖”。隐藏而不是覆盖:可以使用一个指向子类对象的父类指针或者引用来调用隐藏的父类方法。如:class Super{public: void talk( ){cout注意:试图覆盖非virtual

2011-05-23 23:24:00 1730

原创 《C++高级编程》二义基类和虚基类

二义基类在使用多重继承的时候要考虑的一点就是两个或多个父类之间会产生名字二义性。所以,在实际进行时,在子类中应该明确指名将要调用那个父类的方法。exp: 实现一个菱形继承关系:解决的方法是Animal类为虚基类class Animal{public: virtual void eat( )=0;};class Bird:public Animal{public: virtual void bark( ){cout

2011-05-23 23:21:00 1149

原创 《C++高级编程》红皮书----类继承中virtual和using的使用

<br />1、using的作用在关于类的继承问题时,子类和父类出现同名方法时,子类会 隐式/默认 隐藏父类所有的同名方法;除非使用“using 父类名::方法名”在子类中显式声明不覆盖父类的同名方法,否则,不可以调用父类的同名方法。(注意:在同一个作用域里面的同名函数叫做“重载”;在类的继承中出现同名方法叫做“覆盖”。)下面主要就是来证明以上的论断。使用GCC 4.6.0,注意 using的用法。<br />CODE 1#include <iostream>usin

2011-05-21 15:36:00 1739 1

原创 C++两个类使用同一个友元函数来进行相互调用

<br />http://topic.csdn.net/u/20110519/23/cce5ff99-c13b-4d3b-9e47-d0fab4ba8da9.html?seed=731244564&r=73412830#r_73412830<br />问题的引入是论坛上面的一个惊动“特技大牛”的讨论,呵呵,欢迎拍砖~~<br /> <br /><br />#include <iostream>using namespace std;class C;class A{public:

2011-05-20 10:39:00 8351 1

原创 《C++高级编程》红皮书笔记---类的继承

18、mutable变量mutable允许const方法修改mutable修饰的变量;比如在一个类中有数据成员:mutable int mNumAccess;const getValue();一般情况下类的const成员方法是不允许修改类的成员数据的,加上mutable将允许const成员方法修改mNumAccess.19、基于const重载一个方法可以编写两个同名且参数也相同的方法,只不过其中一个为const另一个不是。如果,你提供了一个const对象,编译器会调用co

2011-05-18 23:25:00 1009

原创 《C++高级编程》红皮书笔记--类的指针数据成员

<br />类的原型声明:<br />//spreadSheet.h#include "../spreadSheetCell/spreadSheetCell.h"class SpreadSheet{public: SpreadSheet( int inWidth,int inHeight); ~SpreadSheet( ); //因为数据成员含有指针,所以要自己定义赋值运算符和拷贝构造函数 SpreadSheet( const Sprea

2011-05-14 12:24:00 794

原创 主流CPU架构总结

<br /> <br />1、IA-32:<br />       Linux内核最初是为了Intel 80386 CPU编写的,架构称之为IA-32或x86系列;它有32根地址总线。<br />2、IA-64:<br />       Intel公司64位的CPU体系结构,销售时名为“Itanium” 安腾,高性能的64位体系结构。IA-64可以在兼容模式下运行IA-32程序,但性能会有很大的影响,而且不可以同时运行32bit和64bit的程序。除了具有IA-32兼容模式以外,IA-64似乎要放弃IA-3

2011-05-11 11:26:00 2462

原创 《C++高级编程》红皮书笔记

1、C++使用字符串有3种风格:• C风格,将字符串表示成字符数组• 把字符串包装在一种更易于使用的串类型中,如string类• 一些非标准的方法2、在编写程序之前,先不要具体编写任何代码,而应当首先设计程序,避免陷入到应用程序中;编写程序如果没有设计,就像你建造一座楼房,但是却没有设计图纸。3、C++两个基本原则:抽象和重用4、面向对象程序设计只是一种编程思想,是用另一种思路来考虑程序中发生了什么。过程性方法的基础是问这样一个问题:“这个程序要做什么?”;与此不

2011-05-11 10:48:00 1232

原创 实现C++console显示数据表格的功能函数

<br /><br />#include <iostream>using namespace std;/* if a[ i ][ j ]==-1, a[ i ][ j ] will not be displayed in the table */template<class T>void displayTable(T** a, int lines,int columns ) { int COLUMNS=columns; //the number o

2011-05-11 10:46:00 1713

原创 yum介绍

一、 yum 的使用;有些初学Linux的弟兄可能问,为什么不用系统自带的图形化工具up2date来升级,却要用 yum呢。其实大家用一用就知道了,up2date 真是奇慢无比,而且经常失去响应;造成机器假死的情况。所以我们还是试一试yum ;另外freshrpms.net 可能比官方站更快的更新升级源,也没有理由不用 yum;注:yum优点:软件包依赖关系自行解决,比如上面的,我们可以看到本来我们只安装的是bmp-mp3,结果yum 安装也安装了 id3lib ;bmp。  Fedroa 15已经默认安装

2011-05-06 16:56:00 796

原创 我的Fedroa15安装过程问题总结

1、进行更新的时候出现PMDB altered outside of yum解决方法:sudo yum clean all2、今天在一台CentOS服务器上执行一个yum命令时,居然报错yum install apr错误提示:GPG key retrieval failed: [Errno 14] HTTP Error 404: Not Found后来在ChinaUnix上找到解决办法,这里笔记一下yum install apr --nogpgchec3、更新系统时出现如下问题,导致更新失败:GPG key

2011-05-06 16:48:00 2559 2

转载 可视化的数据结构和算法

<br /><br />(转自http://coolshell.cn/articles/4671.html)<br /> <br />还记得之前发布过的那个关于可视化排序的文章吗?在网上又看到了一个旧金山大学David Galles做的各种可视化的数据结构和基本算法的主页,网址在这里,大家可以看看。我把这个页面的目录列在下面并翻译了一下,大家可以直接点击了。<br />不知道国内的教育有没有相关的教学课件,至少在我大学的时候是没有的。基础Stack栈: 数组实现Stack栈: 链表实现Queues队列: 数

2011-05-06 08:52:00 580

原创 C/C++二维指针实例代码详解

这篇小文介绍了关于指向二维数组指针的知识,来源于一道问题:http://topic.csdn.net/u/20110429/14/7fd61fd9-c1d4-4bee-aea9-6649bd3fd10f.html先看看一下的代码,后面会有总结:#include using namespace std;void plus_a( int (*a)[3],int (*b)[3],int r,int c ) { int i,j; int temp[3][

2011-04-30 18:53:00 3418

转载 RSA算法基础->实践

<br />转自:http://www.xfocus.net/articles/200503/778.html<br /> <br />创建时间:2005-03-02<br />文章属性:原创<br />文章提交:watercloud (watercloud_at_xfocus.org)<br /><br />RSA算法基础->实践<br /><br /><br />讲讲自己学习RSA中的实践过程,已经对RSA熟悉的看家就不用在此浪费时间了。<br /><br /><一>基础<br /><br />RSA算

2011-04-29 14:07:00 790

QT和网页中的JavaScript函数进行相互调用的实现

QT和网页中的JavaScript函数进行相互调用的实现. 有完整的代码举例。 近期刚完成。

2012-04-06

Embeded QT 鼠标驱动流程和类结构分析

Embeded QT 鼠标驱动流程和类结构分析流程图

2012-02-23

VS2010使用MFC编写闹钟和定时关机程序(附源码)

VS2010使用MFC编写闹钟和定时关机程序(附源码)

2010-10-28

IP地址CIDR斜线记法求子网信息软件(vs2010+MFC)

IP地址CIDR斜线记法求子网信息软件(vs2010+MFC)最近在学习计算机网络,遇到根据斜线记法来确定该IP所在子网的信息,包括:子网号、子网掩码、第一个可用IP、最后一个可用IP、广播地址、可用IP数总量。

2010-10-28

Visual_Assist_X_2010_10.6.1819

Visual_Assist_X_2010_10.6.1819可用的破解版,在安装的时候,可以先把原来安装的先卸载,然后再按照说明进行安装就ok

2010-10-18

VS2010使用MFC编写闹钟和定时关机程序

VS2010使用MFC编写闹钟和定时关机程序,界面简单,操作容易。

2010-10-18

计算器(采用MFC编写)

一个采用vs2010制作的计算器,并有相应得解说文档:http://blog.csdn.net/pcliuguangtao/archive/2010/10/04/5921126.aspx

2010-10-04

classinherited

有关类的继承,和多重继承,SDSDFDSSSSSSSFsd dsfdsfsd

2010-05-05

asp教程中文版asp中文版教程

asp中文版教程asp中文版教程asp中文版教程asp中文版教程asp中文版教程asp中文版教程asp中文版教程

2010-04-07

空空如也

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

TA关注的人

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