- 博客(59)
- 资源 (5)
- 收藏
- 关注
转载 qt 读写配置文件 ini
1 ini文件介绍.ini 文件是Initialization File的缩写,即初始化文件。除了windows现在很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能。它可以用来存放软件信息,注册表信息等。 2 ini文件格式INI文件由节、键、值组成
2013-11-28 12:34:06
924
转载 给Qt的控件添加新信号
Qt的控件有时候并不提供我们想要的信号已QLineEdit为例,它并没有提供鼠标点击的信号,此时就需要我们自己添加方法如下:mylineedit.h[cpp] view plaincopy#ifndef MYLINEEDIT_H #define MYLINEEDIT_H #include #
2013-11-28 12:27:17
1035
1
转载 QT 的信号与槽机制介绍
简介: 信号与槽作为 QT 的核心机制在 QT 编程中有着广泛的应用,本文介绍了信号与槽的一些基本概念、元对象工具以及在实际使用过程中应注意的一些问题。QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT 库的基础之上。QT 支持下列平台:
2013-11-28 11:59:20
514
转载 QHash的使用
开发环境:QT 5.0.2 MinGW 32bit这里主要讨论key为QString,value为结构体指针类型的QHash。例如:QHashQString, QUserInfo*> m_hash;一:在工程中添加新类:“添加新文件”-》“C++”->"C++类",生成文件quserinfo.h和quserinfo.cpp。quse
2013-11-27 20:36:15
891
转载 QMutex
QMutex提供了线程间的顺序访问。QMutex的目的是保护一个对象、数据结构或者代码段,所以同一时间只有一个线程可以访问它。(类似java的"synchronized”关键字)。互斥量最好和QMutexLocker搭配使用,因为它使得互斥量的解锁和锁定变得相当一致。比如: int number = 6; void method1() { number *=
2013-11-27 19:50:47
905
转载 QMutexLocker
QMutexLocker用来简化互斥量的锁定和解锁操作。在复杂函数或者异常处理代码中互斥量的锁定和解锁容易出错和难以调试。QMutexLocker就可以应用于这些情况,确保互斥量状态总是定义明确。应该在程序中QMutex需要被锁定处创建QMutexLocker。当QMutexLocker被创建后,互斥量就锁定了。你可以使用unlock()和relock()来解锁和再次锁定互斥量。如果互
2013-11-27 19:50:12
1631
转载 QSemaphore
QSemaphore提供了一个通用的可计数的信号量。信号量实际上就是广义的互斥量。一个互斥量只能被锁定一次,然而一个信号量可以被获取多次。信号量常被用于保护一定数目的同类资源。信号量支持两种基本的操作:acquire()和 release()acquire(n)尝试获取n个资源。如果没有这么多数目的资源可用,它就阻断调用它的程序直到资源可用。release(n)释放
2013-11-27 19:49:41
1388
转载 QWaitCondition
QWaitCondition提供一个条件变量来实现线程间同步。QWaitConditions允许一个线程告诉其它线程某种条件已经满足,一个或多个线程可以等待一个由wakeOne()或wakeAll()设定的条件QWaitCondition。使用wakeOne()会唤醒一种随机选择的事件或者wakeAll()会把它们全部唤醒。比如,假定每次用户按下一个键,我们有三个任务要同时
2013-11-27 19:48:57
556
转载 QWaitConditon应用
背景:在编写多线程的时候,有的线程需要一直的执行下去,永不停止,但是有的线程是需要它能够在我们的控制下自由地的开始和暂停。那么常用的方法就是让线程等待一个标志,标志为假就睡眠,当标志为真就唤醒。Qt提供了类似的机制,那就是QWaitConditon类。一、QWaitConditon简介线程如何睡眠?调用QWaitCondition的wait函数将使得调用它的线程进入睡眠状态
2013-11-27 19:48:02
450
转载 QThread
QThread提供了一个平台无关的方式来管理线程。一个QThread对象管理程序里的一个线程。当QThread对象执行run()后它管理的线程开始运行。默认方式,run()函数的执行将调用exec()函数,开始该线程的事件循环。你可以使用QObject::moveToThread()来将一个工作对象加入到某个线程中。class Worker : public QObject
2013-11-27 19:46:39
1883
转载 Qt的内建(built-in)对话框,多个信号连接一个槽
Qt的内建(built-in)对话框:颜色对话框(QColorDialog),选择颜色[html] view plaincopyprint?QColor clr=QColorDialog::getColor(plt.color(QPalette::Base),this); 错误消息框(QErrorMessage),显示错误信息
2013-11-27 19:27:22
612
转载 VS2008集成QT4.7.2环境搭建
本文档用于指导如何集成QT4.7.2到VS2008 IDE,详细描述其步骤和配置。 安装步骤:一、 安装包准备:1)下载QT4.7.2框架(Qt: Framework Only)安装程序,即:Qt libraries 4.7.2 for Windows (VS 2008, 218 MB),文件名为:qt-win-opensource-4.7.2-vs200
2013-11-27 14:49:57
412
转载 QML基础——基本语法
QML看起来像这样import Qt 4.7 Rectangle { width: 200 height: 200 color: "blue" Image { source: "pics/logo.png" anchors.centerIn: parent } }对象是通过类型而直接被指定的,紧随其
2013-11-27 14:48:29
391
转载 Windows下单机最大TCP连接数
本文和大家分享一下Windows下单机最大TCP连接数,因为在做Socket 编程时,我们经常会要问,单机最多可以建立多少个 TCP 连接,本文将介绍如何调整系统参数来调整单机的最大TCP连接数。Windows 下单机的TCP连接数有多个参数共同决定,下面一一介绍:最大TCP连接数[HKEY_LOCAL_MACHINE \System \CurrentControlSet \S
2012-09-18 11:32:20
656
1
原创 delphi中 mapx鹰眼图的实现
道理很简单,就是用两个mapx,一个显示大图,一个显示小图,废话少说,直接上代码//声明两个全局变量var layer: CMapXLayer; //鹰眼图中,用于显示显示范围的那个图层,下面详细解释ftr: CMapXFeature; //鹰眼框//窗体创建时,添加鹰眼框图层procedure TForm1.FormCreate(Sender: TObject);
2012-07-18 14:20:02
774
转载 用完成端口开发大响应规模的Winsock应用程序
通常要开发网络应用程序并不是一件轻松的事情,不过,实际上只要掌握几个关键的原则也就可以了——创建和连接一个套接字,尝试进行连接,然后收发数据。真正难的是要写出一个可以接纳少则一个,多则数千个连接的网络应用程序。 本文将讨论如何通过Winsock2在Windows NT 和 Windows 2000上开发高扩展能力的Winsock应用程序。文章主要的焦点在客户机/服务器模型的服务器这一方,当然
2009-07-27 18:10:00
782
1
转载 浅析Delphi实现IOCP后的优化
在我的BLOG中有几篇文章是关于如何用DLEPHI来实现IOCP,详见我的BLOG《DELPHI中完成端口(IOCP)的简单分析》。在这几篇文章中介绍了如何编写一个简单的IOCP的方法。最近我重新对这些文章中的一些BUG和效率低下的部分做了修正(其实相当于重新编写),通过几个不同的途径对IOCP进行了实现。下面我就来说一下我对以前代码的优化方法。 1:结构定义部分。首先我们必
2009-05-16 13:26:00
2065
2
转载 利用DELPHI开发完成例程(2)
对于使用完成例程来实现发送数据,其实现类似于接收方法。一下我大概讲述一下。首先定义一个发送的回调函数:procedure SendWorkerThread(Error:DWORD;BytesTransferred:DWORD;IoData: PIOData;InFlags:DWORD);stdcall;FComletionRoutine:=TCompletionRoutine(I
2009-05-16 13:25:00
674
转载 利用DELPHI开发完成例程(1)
对于网络开发者来说,完成例程应该是一个不陌生的概念(什么?你不知道?去看看书吧)。我在网上看了一下,发现完整实现完成例程的代码很少。前些日子由于工作不是很忙就自己写了一个,今天将如何实现公布出来,希望对大家有个帮助。由于水平有限,代码中难免会有不对的地方,希望各位看客能不吝指出。言归正传。完成例程在其性能上仅次于IOCP。通过我的测试,觉得一般支持1000-2000的客户端应该没有什
2009-05-16 13:24:00
762
转载 DELPHI中完成端口(IOCP)的简单分析(4)
在我以前写的文章中,一直说的是如何接收数据。但是对于如何发送数据却一点也没有提到。因为从代码量上来说接收的代码要比发送多很多。今天我就来写一下如何使用IOCP发送数据。 function TNetControl.SendSpecifyData(const Socket: TSocket; Data: array of char; DataLen: Integer): Boolean;c
2009-05-16 13:22:00
513
转载 DELPHI中完成端口(IOCP)的简单分析(2)
今天我写一下关于DELPHI编写完成端口(IOCP)的工作者线程中的东西。希望各位能提出批评意见。上次我写了关于常见IOCP的代码,对于IOCP来说,接受到客户端发送过来和自己发送出去的数据都是从工作者线程中得到。代码和解释如下:function ServerWorkerThread(CompletionPortID:Pointer):Integer;stdcall;begin Comp
2009-05-16 13:21:00
1042
1
转载 DELPHI中完成端口(IOCP)的简单分析(3)
最近太忙,所以没有机会来写IOCP的后续文章。今天好不容易有了时间来写IOCP的粘包处理问题。TCP数据粘包的产生原因在于TCP是一种流协议。在以太网中一个TCP的数据包长度是1500位。其中20位的IP包头,20位的TCP包头,其余的1460都是我们可以发送的数据。在数据发送的时候,我们发送的数据长度有可能比1460短,这样在TCP来说它还是以一个数据包来发送。从而降低了网络的利用率。
2009-05-16 13:21:00
578
转载 DELPHI中完成端口(IOCP)的简单分析(1)
我发现在网上用VC来实现完成端口(IOCP)的代码很多,但是使用DELPHI来实现的就比较少了。对IOCP讲的清楚的就更少了。在这里我把自己编写DELPHI下的IOCP写出来,希望对刚学完成端口的朋友有个帮助。首先我们来了解一些在使用IOCP的时候需要使用的一些结构!(1):单IO数据结构 LPVOID = Pointer; LPPER_IO_OPERATION_DATA = ^
2009-05-16 13:19:00
1147
原创 项目总结
上一项目终于验收通过了,终于可以松一口气了。 即时项目不大,时间也不是特别紧,但总感觉那是到目前为止做过的最累的项目。由于没有独自去做过需求分析,而且对对方信息工程部的人员素质估计过高(-_-!!!),导致最后的产品和最初的需求分析差别比较大。 不过通过这个项目,收获还是不少的。从头到尾,完完整整的参与了一个IM的开发,进一步了解indy(以后可能不会再用indy甚至delphi了
2009-05-13 11:17:00
611
1
原创 刚刚完成的一个项目
这个项目从开始做,到最后结束,前后不到一个月的时间,在这一个月受尽了非人的待遇,还好苦尽甘来,总算是完工了,截几个图给大家看看,^_^别看项目不大,涉及的内容还真不少,IM文字交流,文件传输,IP电话(服务器是asterisk),下一期还要做上视频,麻烦
2009-04-24 23:13:00
627
2
转载 New 和 GetMem 的不同之处
如果操作一个 record 指针中的字符串变量,会不会丢失 string 的内 存空间,造成内存泄漏? 结果是:使用 New() 分配的内存,会自动初始化 record 的内容,并且在 Dispose 时自动 清除所有已分配的内存,包括 string 或其他动态数组的内存。GetMem/FreeMem 没有这个 性质。事实上,New() 中调用了 GetMem,并且执行了一些初始化的操作。 代码如
2009-01-02 16:27:00
673
原创 用dll封装mdi窗口
***********************main (mdi) form***********************unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;type TShowFr
2008-12-27 12:35:00
875
转载 Delphi组件indy 10中IdTCPServer修正及SSL使用心得
indy 10终于随着Delphi2005发布了,不过indy套件在我的印象中总是复杂并且BUG不断,说实话,不是看在他一整套组件的面子上,我还是喜欢VCL原生的Socket组件,简洁,清晰。Indy9发展到了indy10几乎完全不兼容,可叹啊。言归正传。在使用IdTCPServer组件的时候发现了他的漏洞,他的OnConnec,OnExecute,OnDisconnect等事件是在其他线程
2008-12-06 15:05:00
1288
原创 indy9做后个即时通讯的小程序
前一段时间发布几篇小文章,也是关于一个即时通讯的,但是那是公司的一个项目,因为涉及到公司的一些机密,没有发表完。 前段时间一个朋友托我给他们公司做个小的局域网的即时通讯,准备把它整理一下,发上来,初学者可以看看。高手嘛,也可以看看,指出其中的不足,也能帮助我来提高自己的水平,^_^ 这个小程序用的indy9来做的,主要用到了IdTcpServer,IdTcpClient,IdFTP
2008-11-27 09:34:00
564
原创 信博会归来
信博会(全称第四届中国国际(济南)信息技术博览会)昨天就开幕了,昨天没空,今天下午去看了看,简单的描述一下,越来越差,一届不如一届啊。根本就对不起“国际”这两个字,连“中国”这两个字都够不上。 第一届我没参加过,二、三、四届我都去看过了,总体说来,第二届还算可以,人多,厂商也多,国内的用友、金蝶都参会了。浪潮、中创总部在济南肯定少不了,而且很有几个韩国、日本(对日外包的不算)的公司。
2008-09-06 20:25:00
854
2
原创 谈谈我对上一个公司信息化过程中一些看法
2006年10月份离开浪潮乐金,一直到2006年的12月才找到了下一家公司,也就是我下面要说的这家公司。 简单的介绍一下这个公司吧。济南本土的,是一个打印机耗材制造公司,一家生产型企业,还是在筹备期的,公司老板比较有钱,具说注册资金就1.5亿。并且立志要做江北乃至全国最大的打印机耗材生产商。 高层对企业的信息化还算比较重视,委托一家公司(或者说是一个人)来开发公司内部的管理系统。 该系统
2008-08-23 11:41:00
12561
35
转载 企业管理软件平台架构内幕揭秘
我上一篇文章《用友 U9 SOA Ready》写完后,有朋友说里面的企业管理软件平台架构讲的非常好,可惜被用友的内容给遮盖了,希望我能独立成篇,真正把企业管理软件平台架构讲透。于是就成了这篇博文的动笔之因。企业管理软件,由于进入门坎低,各行各业各层次企业都需要,做面向企业应用比做面向个人应用要赚钱多,好销售,所以中国内地有相当大部分的程序员在从事着企业管理软件的开发。尤其是接项目的软
2008-08-04 16:11:00
918
3
转载 SQLSERVER内核架构剖析
我们做管理软件的,主要核心就在数据存储管理上。所以数据库设计是我们的重中之重。为了让我们的管理软件能够稳定、可扩展、性能优秀、可跟踪排错、可升级部署、可插件运行,我们往往研发自己的管理软件开发平台。我们总是希望去学习别人的开发平台(如用友或金蝶或SAP),但我们却总是感叹管理软件业务处理细节繁多,而数据库管理软件却简单的SELECT、INSERT、DELETE、UPDATE四个命令就搞定。
2008-08-04 15:36:00
469
转载 用友U9 SOA Ready
在国内做管理软件的,用友就是一个标杆。用友有U8,金蝶就有K3;用友有NC,金蝶就有EAS。用友有通系列,金蝶就有KIS。时代在发展,曾经辉煌的管理软件行业成了没有人关注的壁花。大家都在关注互联网,关注嵌入式,关注PPG哄孩子,关注阿里巴巴和垂直行业网,关注如家分众橡果国际,关注网游、搜索、地图、QQ,关注通信手机3G。阿里软件横空出世,Salsforce打起SAAS,顿时让过惯了既定
2008-08-04 15:05:00
931
转载 软件公司怎么消亡的
最近读了一篇非常有趣的文章,原文是英文,和大家共享,其大概意思是: 管程序员就象是养蜂人管蜜蜂一样。养蜂人怎么管的呢?养蜂人其实并不能和蜜蜂沟通,谁会说“蜂语”啊。但他们可以把蜜蜂放在一个舒适的蜂房里,这样他们自动就会采蜜了,你顺手就可以拿走蜂蜜。:)对程序员是类似的,把他们弄到一个舒服的环境里:工资比他们想要的高,以至于不会用了(当然,比你的预算还是要便宜);这些蜜蜂会嘤嘤嗡嗡自己形成社会,程
2008-07-26 15:46:00
519
转载 窗体生成的过程
program Project1; uses Windows, Messages; {等待调用的过程, 用于在窗体上绘制文本} Procedure OnPaint(h: HDC); const s = CodeGear Delphi 2007; begin TextOut(h, 10, 10, PChar(s), Length(s)); end; {
2008-07-11 11:44:00
564
2
原创 HTML Help Workshop制作CHM文件添加图片方法
真晕这么简单的一个问题,困扰了我一个上午HTML文件里面的图片连接地址,一定要为相对路径,也就是相对地址,还有就是HTML文件与图片文件必须在同一文件夹内制作另附一篇文章制作工具:Microsoft HTML Help Workshop v1.3英文版1.打开Microsoft HTML Help Workshop;2.执行菜单"File"->"New",在弹出的界面中选择
2008-06-27 16:02:00
5773
3
转载 从Indy9升级到Indy10时IdTcpServer的变化
从Indy9升级到Indy10时IdTcpServer的变化 一、从Indy9升级到Indy10时IdTcpServer的变化 试用了CodeGear2007后感觉挺好的,于是决定升级。别的都很顺利,就是程序中用到的控件Indy9.18要升级到Indy10.15
2008-06-13 09:54:00
2696
转载 如何截取被看不见的视窗内容?
原来,在 Window2K下实现这个功能还真不容易。在XP下有一个新的API函数,PrintWindow,网上有一段代码。整理如下,测试后发现OK。PrintWindow 的声明如下:function PrintWindow(SourceWindow: hwnd; Destination: hdc; nFlags: cardinal): bool; stdcall; external
2008-06-11 17:11:00
719
1
转载 SQL 数据库开发一些精典的代码
1.按姓氏笔画排序:Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as2.数据库加密:select encrypt(原始密码)select pwdencrypt(原始密码)select pwdcompare(原始密码,加密后密码) = 1--
2008-06-11 17:04:00
526
即时通讯(DELPHI INDY)
2012-05-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人