- 博客(14)
- 收藏
- 关注
原创 Sigslot库
最近在开发一个基于libjingle开源的IM系统,里面有一个其类为has_slots,搜索了一下其资料发现是一个很好用的C++库,先对其简单介绍一下。1. 简介 sigslot是一个线程安全、类型安全,用C++实现的sig/slot机制(sig/slot机制就是对象之间发送和接收消息的机制)的开源代码库。是一个非常好用的库,只有一个头文件sigslot
2012-03-27 21:27:43 1349 1
原创 C++编译错误及解决办法
编译错误一:XX does not name a type 编译错误二:field `XX' has incomplete type 编译错误一:XX does not name a type, 中文意思为“XX没有命名一个类型“拿个例子来讲,如果两个类定义如下:class B{public:B(){}~B(){}private:A a;};
2012-03-24 17:07:14 2149
原创 linux中进程管理
摘要:本文讲述的时进程管理的基本概念和进程管理工具介绍;文中的重点对进程管理工具的分类介绍及应用举例,包括 ps、pgrep、top 、kill、pkill、killall、nice和renice 等工具。目录1、程序和进程;1.1 进程分类;1.2 进程的属性;1.3 父进程和子进程;2、进程管理;2.1 ps 监视进程工具;2.1.1 ps参数说明;2.1.
2012-03-24 14:19:34 744
原创 QT线程
线程基础何谓线程?线程与并行处理任务息息相关,就像进程一样。那么,线程与进程有什么区别呢?当你在电子表格上进行数据结算的时候,在相同的桌面上可能有一个播放器正在播放你最喜欢的歌曲。这是一个两个进程并行工作的例子:一个进程运行电子表格程序;另一个进程运行一个媒体播放器。这种情况最适合用多任务这个词来描述。进一步观察媒体播放器,你会发现在这个进程内,又存在并行的工作。当媒体播放器向音频
2012-03-23 21:34:06 2025
原创 QT执行MYSQL语句问题解决
int ServerBase::DBConnection(){ m_sqldb = QSqlDatabase::addDatabase(DB_SALES_DRIVER); m_sqldb.setHostName(DB_SALES_HOST); m_sqldb.setDatabaseName(DB_SALES_DBNAME); m_sqldb.setUserName
2012-03-14 22:01:10 2084
原创 进程间通信--FIFO命名管道
管道没有名字,所以只能在具有血缘关系的进程间使用,而在无名管道发展出来的有名管道FIFO,则有路径名与之相关联,以一种特殊设备文件形式存在于文件系统中,从而允许无亲缘关系的进程访问FIFO,下面看FIFO的详细操作1.FIFO的建立FIFO是存在于文件系统的文件节点,所以我们可以建立文件节点的mknod系统用来建立它,也可以mkfifo系统调用mkfifo说明:#i
2012-03-13 19:27:05 928
原创 四种强制转换类型运算符
static_cast 用法:static_cast ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转换(把子类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或
2012-03-13 19:02:25 1086
原创 C++的自赋值问题
再用到操作符重载的时候,注意到了这个问题如果不进行自我赋值检查。就有可能出现一种情况。那是灾难性的。举例说。你在拆房子。如果你不先看看自己是否在房子里就直接拆了。那会是怎么样呢??想想就知道。在网上搜索了一下,转载一个现成的:http://www.lough.com.cn/cpp/thincpp2.htm1.需要考虑的自赋值。当类包含指针或引用成员时应注意检查。
2012-03-13 18:59:50 4627
原创 使用句柄类封装继承体系
在DLL封装的时候,一般都会采用接口类(Interface Class),即纯虚类,达到接口与实现分离的目的。但采用接口类,只能通过返回指针或引用来间接使用被封装的类。相对于这一点,采用句柄类(Handle Class)是个不错的替代方案。句柄类除了名称外,在使用方式上基本同被封装的类无差别。句柄类易用性是建立在耗费一定运行效率的基础之上的(当然,接口类也会消耗一定的运行效率),因此它一般用在运行
2012-03-13 10:47:03 1076
原创 Qt连接MySQL数据库[环境配置]
环境说明: ubuntu 10.04.2 QtSDK (1.5G安装包的那个) mysql5.1 1.安装MySQL Linux下完整的MySQL开发需要安装服务器端,如果安装客户端也没什么不好。直接在软件中心搜mysql,把client和server选上。 server在安装时会提示为root用户设置密码,设一个好了。 我使用
2012-03-04 19:30:27 1634
原创 QListWidget和 QListWidgetItem
#include #include #include #include int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget *window = new QWidget; window->setWindowTitle("QListWidget & Item");
2012-03-03 21:15:33 2281 2
原创 QListWidget和QStackedWidget
QListWidget和QStackedWidget的简单使用,模仿QQ设置 layout1.pro[cpp] view plaincopySOURCES += layout1.cpp / main.cpp / widget1.cpp /
2012-03-03 21:13:13 4639
原创 linux串口编程
本文是学习linux串口编程必读文章,网上的linux串口程序大多参照此文写成。 原文地址是:http://digilander.libero.it/robang/rubrica/serial.htm 有兴趣的可以看看原文。posix 操作系统串口指引(Serial Programming Guide for POSIX Operating Systems) 5th Edition Mic
2012-03-03 16:01:22 1810
原创 管道的实现机制
在Linux中,管道是一种使用非常频繁的通信机制。从本质上说,管道也是一种文件,但它又和一般的文件有所不同,管道可以克服使用文件进行通信的两个问题,具体表现为:· 读取进程也可能工作得比写进程快。当所有当前进程数据已被读取时,管道变空。当这种情况发生时,一个随后的read()调用将默认地被阻塞,等待某些数据被写入,这解决了read()调用返回文件结束的问题。1. 管道的结构
2012-03-03 10:33:12 1340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人