- 博客(91)
- 收藏
- 关注
原创 用shell脚本实现从文件中读取数据插入mysql
shell脚本无所不能,实现数据库的导入导出.最简单的就是下面的脚本,循环从文件中读出单行字符串,循环插入msql格式是: mysql -h(数据库IP) -u(用户名) -p(密码) -P(端口) -D (数据库名) -e (sql)#!/bin/bashwhile read linedo echo $line mysql -h10.147.23.120 -u
2012-08-24 19:34:21
7081
1
原创 webkit 目录说明
一、external/webkit/webcoreAccessibility 提供控件的可用性相关的内容。主要说明使用Mac和Win操作系统下的图形控件的可用性,以及使用不同的图形库Gtk、Qt、Wx的控件的绑定和使用情况等。Mac: MAC OS XChromium:一个开源的网页浏览器,也相当于Google Chrome的工程版。Gtk:是unix-like系统下开发图
2012-06-03 16:21:35
1127
转载 Chrome和webkit的一些资源
Google Chrome 源码下载Goolgle 于 2008.09.02 发布了浏览器 Google Chrome。Google Chrome 使用的内核源码来自开源浏览器引擎 WebKit Open Source Project。Google Chrome 的源码,
2011-08-27 18:46:50
685
原创 高性能Linux服务器优化策略三:调整网络参数
<br />调整/etc/sysctl.confnet.ipv4.tcp_syncookies = 1 <br /><br />表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;net.ipv4.tc
2010-12-10 18:51:00
1335
原创 高性能Linux服务器优化策略一:优化配置
Linux服务器并不是装上就达到最优性能的,为了让CPU专注你自己的程序,而不再一些无所谓的服务上浪费时间,需要关闭一些不需要的服务。
2010-09-05 23:43:00
907
原创 一个重绘的ip控件
关键APIFillSolidRect() CPaintDC dc(this); CDC *dc = GetWindowDC(); 未完 待续
2009-07-27 15:46:00
485
原创 继承CWinThread创建UI线程
我们经常在UI线程里面创建一些worker线程来执行一些复杂而冗长的计算任务,也可以创建一个UI线程,比如在点击一个按钮后弹出一个对话框,也可以用一个线程来执行。 只需要继承CWinThread就行了,并重载2个函数:virtual BOOL InitInstance(); virtual int ExitInstance();/代码如下:class CU
2008-10-09 15:04:00
2071
原创 C++细节之六:何时使用继承 何时使用模板
在用才C++设计类的时候,要考虑是使用继承还是使用模板,原则如下: 当对象的类型不影响类中函数的行为时,就要使用模板来生成这样一组类。· 当对象的类型影响类中函数的行为时,就要使用继承来得到这样一组类。
2008-09-26 18:57:00
783
原创 C++细节五:避免产生临时(隐式)对象
产生一个对象,如果这个对象很大并且这个对象是在一个循环里面产生的,是特别耗资源的,因为编译器要找到一块合适的内存,如果没有合适的还要整理磁盘碎片并合并为一块合适的对象存储区。因此,在编程中一定要小心的产生临时对象。 临时对象在C++语言中的特征是未出现在源代码中,从堆栈中产生的未命名对象。这里需要特别注意的是,临时对象并不出现在源代码中。即开发人员并没有声明要使用它们,没有为其声
2008-09-21 22:42:00
607
原创 Sleep(0)及其使用场景
Sleep(n)的作用是让当前线程睡眠n毫秒,以便执行其他线程,如果没有其他线程,那睡眠n毫秒后,继续执行。 而如果n=0,Sleep(0)是指CPU交出当前线程的执行权,让CPU去执行其他线程。也就是放弃当前线程的时间片,转而执行其他线程。 那么,Sleep(0)应该在那种情况下使用? 一般来说,如果当前线程比较耗时比较占CPU资源,可以在结尾处加上Sleep(0),
2008-09-20 11:46:00
4834
3
原创 递归删除文件夹
windows API有一个RemoveDirectory(path)函数,但是必须是该文件夹为空,才能删除。在这个ActiveX中,因为只有3个需要另外存放的DLL,因此我是采用一下代码新建文件夹的: TCHAR csStr[256]; CString sysDirPath; Get
2008-09-16 16:28:00
948
原创 C语言获取文件后缀名
#include #include //求子串 char* substr(const char*str, unsigned start, unsigned end){ unsigned n = end - start; static char stbuf[256]; strncpy(stbuf, str + start, n);
2008-09-04 15:11:00
5167
1
原创 C++细节之四----再论四大函数
在建立一个类的过程中,首先应该考虑的是,有哪些成员变量,即对象拥有的属性,第二步抽象出类的接口,即需要哪些成员函数,并确定访问权限。第三步,当然是考虑如何为类建立构造函数和析构函数了。对于成员变量中有指针的情况,需要提供拷贝构造函数和赋值函数。 1 构造函数:这个函数里面有许多需要注意的问题,第一,成员变量的赋值是放入初始化成员列表中,还是放在构造函数内部,两者的区别是
2008-07-28 01:02:00
730
转载 从printf()看可变参数函数
1. 使用情形 int a =10;double b = 20.0;char *str = "Hello world";printf("begin print/n");printf("a=%d, b=%.3f, str=%s/n", a, b, str);... 从printf的使用情况来看,我们不难发现一个规律,就是无论其可变的参数有多少个,printf的第一个参数总是
2008-07-21 15:36:00
526
原创 C++细节之三----当类中含有指针成员时
当类中包含指针成员,有一些问题要注意,比如,默认的析构函数要释放对象,并不会删除指针所指的内容,而只是删除指针,明显这就产生了内存泄露。为了解决这个问题,必须在构造函数上下功夫。就是实现三大函数,即:构造函数,拷贝构造函数,operator=。在这三个函数对指针所指内容进行深复制。这样做了之后,这个类的每个对象都单独的拥有这块内存。问题自然就解决了。 这个问题也可以引用《
2008-07-17 22:52:00
623
原创 C++细节之二---注意函数的返回值
似乎从来没有犯过返回值还出问题的错误,一般来说,一个函数结束后,会在函数指针出开辟一块内存存放返回值,这也是函数生命周期结束返回值以来存在的原因。没有犯过这种错误是因为,我们很少写返回const XXX &,也就是当返回值是一个大对象的引用的时候,我们经常容易犯这种错误。 和参数传递一样,函数的返回也包含3种,按值返回,按常量的引用返回,按地址返回。其中按地址返回就是返回一个指针了。
2008-07-11 01:45:00
674
原创 C++细节之一----3种参数传递方式的使用场景
对于参数传递,有3种方式:a 传值 b 传引用 c 传指针 如果是基本数据类型,那就传值,如果是传递大的对象,那当然是传引用。而对于引用来说,是赋了值后就不会改变的,应该加const, (const &a). 如果函数体要改变这个对象,那就传指针。这是一个结论,以下说明原因。 将实参传递给形参,需要赋值操作,对于基本数据类型,当然是很快的,但是对于大的对象来说,赋值就是个性能的瓶颈
2008-07-11 01:06:00
572
原创 C++细节---序言
C++是一门复杂的计算机语言,没有C语言简洁,也没有Java、C#的简单。正是因为这个原因,我们才喜欢她,喜欢她的弱点和强大的功能,也许天使并不完美,正是由于不完美让让人神往。 我最早学习的就是C++语言,但是当时大一的时候本身对于计算机的领悟就有限,不可能对C++有深入了解,甚至可以说完全不了解。之后,我开始使用C语言,编写实践了大量的数据结构,但也是为了应付考试,并没有用C语
2008-07-11 00:44:00
379
原创 使用指针实现进程间通信
使用指针进行进程间通信,大致思想就是,在一个应用程序中获得某个变量的地址,然后在另一个应用程序中通过内存读写来改变这个地址中的值,或者提取这个地址中的值。这就是整个过程,很简单。两个应用程序沟通的桥梁就是某个变量的地址(指针)。 找到进程句柄: 首先在一个应用程序中,找到进程窗口的句柄(FindWindow()), 然后获得进程ID(GetWindowThreadProcessI
2008-04-27 21:38:00
585
原创 在vc中自定义事件扩展控件功能
当MFC所提供的控件不能满足我们的要求时,我们需要为控件进行功能扩展,根据需求自定义控件的事件。本文以一个扩展按钮的鼠标按下和鼠标松开的事件为例,其它控件事件扩展可遵照该例。提供源代码,在VC6.0中调试成功。 按钮也是一个窗口,继承自CWND,它其中封装了大量的消息,因此我们之需要继承CButton,然后添加我们需要的事件对控件进行扩展即可。在开发过程中,只需要将标准按钮
2008-04-06 14:13:00
1934
1
原创 函数指针调用类成员函数的解决方案
如果碰到在一个类中通过函数指针调用成员函数的要求。比如:在一个类中使用了 STL的排序函数qsort时,因qsort参数需要一个比较函数指针,如果这个类使用某个成员函数做比较函数,就需要将这个成员函数的指针,也就是成员函数名,传给qsort供其调用。 如以下三种情况就会出现编译错误: 1 将类的成员函数指针赋予同类型非成员函数指针#include#includety
2008-04-06 13:42:00
1829
原创 函数指针调用类成员函数的问题----对象模型的困惑
首先通过以下代码测试一下,函数指针调用成员函数的几个类,用sizeof计算出函数指针的大小,结果有点困惑。#include #include class Test;class Test2{};class Test3{public: void (*memberfun)(); void Memberfun1(void (*f)()) { f(); } void Memberfun2();
2008-04-03 22:47:00
1123
原创 深入解析C++构造函数
1 带有default Constructor的Member Class Object2 带有Default Consturctor的Base Class3 带有一个Vitual Function的Class4 带有一个Virtual Base Class的Class
2008-03-09 22:36:00
1049
原创 用消息映射处理消息循环
为一个vc程序添加一个事件,那么平台会自动生成时间处理的函数,我们只需要在里面加代码就可以了。比如添加WM_LButtondown大家都知道windows程序是事件驱动,每一个事件都需要一个函数来与之对应,也就是通过消息循环在消息队列中来检测事件,然后通过回调函数来处理这一事件。 那么MFC是如何链接到这一事件的呢?它是通过消息映射来实现的。 在每个能处理消息的类中,
2008-02-20 17:37:00
1413
原创 静态类做缓存和全局对象
静态类能做的事情很特别,很多时候它能帮大忙。 由于静态类不能包含this指针,因此不需要本类去实例化,可以独立对象产生,由于静态类实例化没有任何意义,所以我们最好加一个private构造函数来避免静态类的实例化。 由于静态类的生存周期是程序执行时到程序结束,所以我们可以在这个类中包含一个对象,用static修饰,那么我们可以在其他工程域中使用这个对象,因为它是公
2008-01-23 18:13:00
2447
原创 Remoting学习之一:对象的序列化
Remoting的实质就是远程对象的调用,就是调用另一台机器的某个对象,那么第一步当然就是将对象序列化,这样才能在网络中传输。那么肯定就有2种方式来传递,一是将对象序列化为二进制形式,通过TCP协议来传输;二是序列化为XML格式,通过http/soap来传输。这是学习Remoting的必备条件。 序列化为二进制: // create a file s
2008-01-22 21:56:00
1711
原创 如何在类中建立恒定的常量
有时候,一个类的所有对象都共享相同的数据,这样节约存储,不需要在每个类实例化后都放相同的数据。那么有哪些方法来实现呢? 1 使用static const, static表示只为一个编译单元。class A {public:static const int SIZE1 = 10; //VC不支持static const int SIZE2 = 5;private:int arr
2008-01-02 21:38:00
1419
原创 如何修改const常量的值
看到这个标题,你也许会说,我不懂const, 因为Const修饰的是不可变得变量,他的值是不能修改的。没错,const修改的值的确不能修改,但是也有条件,条件就是编译不能通过,const是一个编译时期常量。如果我能在绕过编译器,通过编译后,我仍然可以修改const的值。 分C/C++两种情况讨论: 一 C语言: const long lng=10;
2008-01-02 17:54:00
4274
3
原创 .net多线程总结
.Net提供了许多多线程编程工具,可能是因为太多了,所以掌握起来总是有一些头疼,我在这里讲讲我总结的一些多线程编程的经验,希望对大家有帮助不需要传递参数,也不需要返回参数我们知道启动一个线程最直观的办法是使用Thread类,具体步骤如下ThreadStart threadStart=new ThreadStart(Calculate);Thread thread=new Th
2007-12-21 22:02:00
1278
转载 详解C++虚函数表
前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函
2007-12-19 21:48:00
1060
原创 关于main(),让程序可以执行命令行参数
MS C++/C应用程序的启动函数为mainCRTStartup()或者WinMainCRTStartup(), 他们都在这个函数内部定义了main()函数,或者WinMain(),然后以他们的返回值为参数调用库函数exit(),因此也就默认了main()应该作为它的连接对象,如果找不到这样的函数定义,自然就会报错了。 main()其实就像是一个回调函数。 基于应用
2007-12-17 17:52:00
928
原创 MySpace&FaceBook和我的论文
今天在csdn上看到Myspce中国区CTO的访谈,结合对FaceBook的一些认识,感觉到了Web2.0正在的风靡整个地球,Myspace平台,让全球热爱网络的人结合到了一起,成为朋友;SpaceBook让自己生活中的朋友,昔日的同学,同事结合到了一起,一起分享他们的生活,分享他们喜欢的音乐,和书籍。 这个我产生的在震撼不是这些平台上有多么好玩,而是让我对互联网的发展有了新的认
2007-10-25 01:27:00
523
原创 分析C++中友元实现数据共享
在C++中,为什么要引入友元的概念呢?主要是为了实现数据共享,提高程序效率,方式就是避免过多的函数调用。请看以下实例:#include#includeclass Point{public: Point(int xx,int yy) { X=xx; Y=yy; } int GetX() { return X; } int GetY() { return Y; } friend fl
2007-10-21 01:42:00
1013
原创 const修饰对象,成员函数,成员变量
const表示常量,意思就是说,被它修饰的对象,成员函数,成员变量,在整个程序运行期间,它的值得保持不变,如果你在程序中改变它,编译器将会报错。 如下面程序:#include void display(const double &r);void main(){ double d(9.5); display(d);}void display(const doubl
2007-10-17 00:05:00
1188
原创 总结static用法
在C语言里,static用来修饰局部变量和全局变量。如果是修饰局部变量,那么这个值在函数调用完之后并不马上清除,而是保存它的值,可以用来做计数器。如果是用来修饰全局变量,主要目的是为了让别的文件不能使用这个变量。碰到多个程序员共同完成一个项目,可能会碰到全局变量重名的情况就解决了。顺便提一下,如果这个变量可以被外部应用,那么使用extern修饰。编译器碰到extern,它就知道这个变量在其
2007-10-16 22:59:00
665
原创 拷贝构造函数使用情况
在C++中,有一个拷贝构造函数的概念,当一个对象通过构造函数初始化之后,如果需要一个和它一样的对象,这个对象是临时的,比如:1 函数返回一个对象,这个对象就是一个拷贝;2 对象做函数的形参,传过来的实参对象就是一个拷贝。3 用一个同类对象去初始化另一个对象时候,Point A(1,2),Point B(A). B对象就是通过拷贝构造函数产生的。 一般来说,拷贝构造函数是默认的,系
2007-10-16 15:25:00
745
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人