自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

转载 Linux静态库和动态库

库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 静态库和动态库的区别1. 静态函数库    这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如

2013-12-26 22:36:29 481

转载 Linux 解压缩命令

在Linux系统中,我们通常使用的文件压缩命令有:bunzip2 , bzip2 , cpio , gunzip , gzip ,split(切割文件) , zgrep(在压缩文件中寻找匹配的正则表达式), zip ,unzip, tar ,rar。最后四个是我比较常用的,今天的笔记就写这四个的好了。1、tar:tar命令:tar [选项...] [FILE]...输入“t

2013-12-25 10:08:51 530

转载 ldconfig

ldconfig是一个动态链接库管理命令    为了让动态链接库为系统所共享,还需运行动态链接库的管理命令 -- ldconfig    ldconfig命令主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认

2013-12-24 13:12:23 544

转载 永远不要在 Linux 执行的 10 个最危险的命令

Linux命令行佷有用、很高效,也很有趣,但有时候也很危险,尤其是在你不确定你自己在正 在做什么时候。这篇文章并不打算引来你对Linux或linux 命令行的愤怒。我们只是想让你意识到在你运行某些命令时应该三思而后行。(译注:当然,以下命令通常都是在root权限下才能将愚蠢发挥到无可救药;在普 通用户身份下,破坏的只是自己的一亩三分地。)1. rm -rf 命令rm -rf

2013-12-21 11:29:57 471

转载 find 命令小结

find命令查找文件或者目录。一般格式为:find pathname -options [-print -exec -ok ...]● 如果pathname为“.”,则表示查找当前目录例如,执行命令:find .会把当前目录中所有的文件及其目录树列出来。如图所示:● 如果pathname为“/”,则表示查找根目录例

2013-12-20 17:32:40 579

转载 c++对象切割(Object Slicing)

当把一个派生类对象赋给一个基类对象时,会发生对象切割。(另外用基类对象强制转换派生类对象也会)对象切割会发生什么呢?#include using namespace std;class CShape{public:          CShape ()          {                      m_col

2013-12-09 09:51:44 598

原创 获取中文首字母

头文件 #ifndef INITIAL_H#define INITIAL_H#include using namespace std;/** * @brief The Initial class * get the initial letters of a Chinese string */class Initial{public: Initial(); ~

2013-12-07 16:44:25 552

原创 Qt下 汉字转换拼音

QString ChtoPy::ConvertChineseToPy(QString input){ //保存拼音ASCII值 const int PyValue[] = {-20319,-20317,-20304,-20295,-20292,-20283,-20265,-20257,-20242,-20230,-20051,-20036,-20032,-20026,

2013-11-30 12:56:33 2952 1

转载 stdafx.h作用及原理

一、简介名称的英文全称为:Standard Application FrameworkExtensions  所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。  预编译头文件通过编译stdafx.cpp生成,以工

2013-11-28 00:07:15 604

转载 C++ 虚函数表解析

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。  关于虚函数的使用方法,我在这

2013-11-26 23:24:27 384

原创 extern 的用法

extern 可以置于变量或者函数前,表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。    extern 也可以用来进行链接指定。     C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语言则不会,因此会造成链接时找不到对应函数的情况,此时C函数就需要用extern “C”进行

2013-11-26 11:40:13 458

转载 QString与CString互转

#include #include #include inline QString  CS2QS(CString cs) { return  QString::fromWCharArray((LPCTSTR)cs, cs.GetLength()); }inline CString  QS2CS(QString qs) { return  qs.toStdString().c

2013-11-18 13:43:34 1270

转载 #pragma comment(lib,"ws2_32.lib")

#pragma comment(lib,"ws2_32.lib")#pragma   comment(lib,"Ws2_32.lib")表示链接Ws2_32.lib这个库。     和在工程设置里写上链入Ws2_32.lib的效果一样,不过这种方法写的     程序别人在使用你的代码的时候就不用再设置工程settings了。 告诉连接器连接的时候要找ws2_32.lib,这

2013-11-15 10:38:26 738

转载 使用MFC中的AfxBeginThread创建多线程

创建一个基于对话框的工程,工程名为CreateThreadRect 在CreateThreadRect.cpp中增加一个ThreadProc函数,代码如下 工作者线程的函数必须是全局函数或静态成员函数,不能是普通的成员函数 DWORD WINAPI ThreadProc(LPVOID pParam){ CDC* pdc; //

2013-11-14 14:40:19 1182 1

转载 一个基于 exosip 库的 UAC 和 UAS 的代码整理

/** * 一个使用了 osip 和 eXosip 库的 UAC 代理客户端的演示程序 * * - 只是简单的演示了使用了 osip 和 eXosip2 库的 UAC 代理客户端的如下几个功能: * * i 发起呼叫 INVITE 请求 * * h 挂断会话 * * s 执行方法 INFO * * m 执行方法 MESSAGE* * 编 译:g++ -I/usr/local

2013-11-13 10:09:50 783

转载 G711编解码

//编码int CG711Decoder::G711_EnCode(unsigned char* pCodecBits, const char* pBuffer, int nBufferSize){ short* buffer = (short*)pBuffer; for(int i=0; i<nBufferSize/2; i++) { pCodecBits[i] = encode(

2013-11-13 09:25:10 1093

转载 Qt GUI 总结

QT提供了设计师工具,可以很方便的使用鼠标拖拽的方式绘制界面。绘制完毕后自动生成一个界面的.h文件(如ui_mainwindow.h),其中含有一个自动生成的Ui_MainWindow类,这个类中核心的函数是setupUi,根据界面向导的不同里面接收一个QWidget *参数或者QMainWindow *参数。这个函数会自动在传入的QWidget或QMainWindow上根据设计师绘制的界面创建可

2013-10-30 14:12:37 661

原创 Setup Factory 9.0 中的几个问题

Setup Factory 是一个比较简单实用的打包工具。使用Setup Factory对程序进行打包的基本步骤1 选择创建新工程,由创建向导创建基本的打包程序。点击完成后,全选所有文件,右键File Propeities -> Overwrite  选择 Always  overwrite  existing files。2 Settings    Ses

2013-10-26 14:28:29 2284

转载 wchar_t char string wstring 之间的转换

在处理中文时有时需要进行wchar_t,char,string,wstring之间的转换。其中char和string之间、wchar_t和wstring之间的转换较为简单,代码在vs2010下测试通过。[cpp] view plaincopy#include   #include   #include   #include     using n

2013-10-22 10:28:48 846

原创 解决 win8.1 安装中文应用程序出现乱码问题

如果在 win8.1中 安装软件出现乱码,只要做一下简单的设置即可控制面板—区域 1   位置->当前位置:选择中国;2    管理->更改区域设置:选择 中文(简体,中国);设置完成,重启系统

2013-10-21 14:30:34 3068

转载 VS2010中文注释带红色下划线的解决方法

环境:Visual Studio 2010问题:代码中出现中文后会带下划线,很多时候感觉很不舒服。找了很久的原因没找到,后来无意中在VisualAssist X里找到了解决办法。1.安装完Visual Assist X后会在VS2010的菜单栏出现VAssistX这个选项,单击展开,选择Visual AssistX Options;2.把如图所示的勾去掉

2013-10-16 14:00:45 1678

原创 InstallShield Setup.rul 简单示例

//===========================================================================////  File Name:    Setup.rul////  Description:  Blank setup main script file////  Comments:     Blank setup is

2013-10-16 11:25:07 2523

原创 程序打包发布 具体操作步骤

1  创建 工程      选择 InstallScript MSI Project,其兼具Basic Project基本类型和Installscript Project全脚本类型两者的优点。2  Project Assistant    (1)Application Information         输入 公司名称, 程序名称,版本号       

2013-10-16 11:22:48 1306

转载 在Linux中使用线程

我并不假定你会使用Linux的线程,所以在这里就简单的介绍一下。如果你之前有过多线程方面的编程经验,完全可以忽略本文的内容,因为它非常的初级。首先说明一下,在Linux编写多线程程序需要包含头文件pthread.h。也就是说你在任何采用多线程设计的程序中都会看到类似这样的代码:1#include

2013-10-16 09:09:48 906

转载 掌握Linux编程的10个步骤

做linux c语言开发有一小阵子了,在这边自己总结了些心得,相信能让不懂得Linux编程的人慢慢步入Linux殿堂。有任何不对或不准确之处欢迎讨论。1. 安装 linux 操作系统既然要学习linux下的c语言开发,那么安装个linux操作系统是必须的。建议安装Ubuntu,这是我目前见过界面最友好的linux操作系统了。关于如何使用Ubuntu以及在其上作开发,可参考我的另外一

2013-10-14 12:13:39 513

转载 13个代码注释的小技巧

以下13个小技巧可以使得你的代码在长时间内依然能够保持容易理解和维护。1. 对不同级别的代码进行注释对于不同级别的代码块,要使用统一的方法来进行注释。例如:对于每一个类,需要包含一段简明扼要的描述,作者和上一次修改的时间对于每一个方法,需要包含这个方法的用途,功能,参数以及返回结果当你在一个团队里面的时候,采用一套注释的标准是非常重要的。当然,使用一种大家都认可的注

2013-10-12 23:30:34 541

转载 socket select()用法

一、winsock中#include 原型int select(int nfds,fd_set* readfds,fd_set* writefds,fd_set* exceptfds,const struct timeval* timeout);nfds:本参数忽略,仅起到兼容作用。   readfds:(可选)指针,指向一组等待可读性检查的套接

2013-10-10 14:22:49 761

转载 SOCKET端口复用

在WINDOWS的SOCKET服务器应用的编程中,如下的语句或许比比都是: s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);saddr.sin_family = AF_INET; saddr.sin_addr.s_addr = htonl(INADDR_ANY); bind(s,(SOCKADDR *)=saddr,sizeof(saddr));

2013-10-09 16:47:13 2470

转载 函数指针详解

这篇文章把函数指针的各种常用情况做了一个详解的总结。 1. 指向普通函数的指针 很简单,如下的例子可以说明基本格式和用法:[cpp] view plaincopyint int_add(int a, int b)  {      return (a+b);  }  int int_sub(int a, int b)  {      return (a-b

2013-10-09 11:27:39 402

转载 使用Win32 API做个系统托盘图标

系统托盘在我们使用的程序中很普遍,下面我们来看一个很不错的例子,使用Win32 API实现,对理解系统托盘有些帮助。#include #define IDR_PAUSE 12#define IDR_START 13/*#include #pragma   comment(lib,   "shell32.lib") */LPCTSTR szAppName =

2013-09-29 00:08:09 1249 1

转载 MFC的一些实用的基础知识

一、_T()函数_T("")是一个宏,他的作用是让你的程序支持Unicode编码。因为Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。

2013-09-29 00:00:57 642

转载 在VS2010中开发ActiveX控件设置测试容器的方式

在VS2010中开发MFC ActiveX控件,开发完后,通常使用VS自带的容器ActiveX Control Test Container来运行ActiveX控件。此容器在VS安装后的文件中是找不到的,需要自己手动获取。如下所述:(1)按照你的VS所安装的路径,找到VC2010Samples.zip这个压缩文件,其在Samples下的名为2052文件夹中,如在我的电脑上,其所在路径为:C

2013-09-24 14:39:30 851

转载 C++基于ATL工程编写ActiveX控件

开发环境:VS2010开发工程:C++ATL项目开发目的:创建ActiveX实现js调用步骤:1.      创建一个ATL工程应用程序类型选择动态链接库(DLL),勾选支持COM+1.0,勾选支持部件注册器2.      选择类视图,添加接口与类如果没有找到类视图,可以在工具栏中添加上视图选择工程,右键添加类

2013-09-24 11:01:21 966

原创 QJson的使用

准备QJson       1. 将release文件夹里面的libQJSon.a放到\lib 目录中。如D:\Qt\Desktop\Qt\4.8.1\lib    2. 在release文件夹里面找到QJSon.dll文件,将它放到\bin目录中   3. 创建一个名为QJSon的文件夹,然后将之前的代码目录中的所有头文件(*.h和*.hh)都拷贝到新创建的QJSon的文件夹中, 

2013-09-23 17:17:48 1742

转载 QJson编译

1.下载安装cmake,假设安装路径为D:\Qt\cmake-2.8.10.2-win32-x86\2.从QT菜单【Qt 4.8.3 Command Prompt】中进入命令行窗口,执行下面命令set path=%path%;D:\Qt\cmake-2.8.10.2-win32-x86\bin该命令行是设置cmake路径3.在qjson目录下执行下面命令:a

2013-09-23 16:54:21 1471

转载 gloox 心跳处理封装

通常在客户端与服务器之间需要心跳来维系连接,XMPP可以通过一个扩展协议XEP-0199来实现客户端与服务器端的心跳。封装思路:在程序中另起一个线程专门用做心跳处理;GLOOX库里对XEP-0199的ping发送实现是在ClientBase类里的一个方法:void xmpp Ping( const JID &to, EnentHandler *eh );在说明这个方法之前先介绍

2013-09-23 14:37:26 1153

转载 QString类说明

QString QString::number ( ulong n, int base = 10 ) [静态] 这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。也可以参考setNum()。QString QString::number ( int n, int base = 10 ) [静态] 这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相

2013-09-23 14:22:26 3086

转载 橡皮筋类(CRectTracker)

Windows自带的画图软件中可以用虚线框选择图像的某个区域,之后便可以拖动、放大、缩小该区域,这是通过橡皮筋类(CRectTracker)来实现的,它将实现用线框选中一个区域,并可以拖动、放大、缩小该区域。简介:CRectTracker类允许一个项被显示,移动,以不同的方式改变大小。虽然CRectTracker类是设计来支持用户以图形化界面与OLE项交互的,但是它的使用不仅限于支

2013-09-22 14:54:38 563

转载 Windows GDI、DC

GDI    Windows环境下的图形组件,介于应用程序与绘图设备驱动之间,为应用程序提供了一套与具体设备无关的绘图程序接口。    Device Context    是对具体绘图设备的一个抽象,用以加载特定的绘图设备驱动程序,并根据应用程序的指令调用具体的绘图设备实现所需的绘图操作。应用程序在绘图前创建并维护一个Device Context,并调用创建的Device

2013-09-22 11:31:13 619

转载 提升代码内外部质量的22条经验

本文主要关注代码的内部和外部质量,编程的价值观,代码质量的评估标准,整洁代码的匠艺以及如何维护已有的代码。外部质量:用户所能感受到的部分,正确性,易用性,效率,可靠性。内部质量(代码质量):可维护性,灵活性,可移植性,重用,可读性,可测试性,可理解性。总结的22条经验如下:代码分为外部质量和内部质量,好的产品不等于好的代码(Good Software != Quality Code

2013-09-21 09:49:11 633

空空如也

空空如也

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

TA关注的人

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