摘要:什么是SQLitePP ? SQLitePP 是一个C++封装的 SQLite组件,开源、免费。目的是使用面向对象的方式来简化SQLite的使用,具有面向对象的访问方式。开源工程:http://sourceforge.net/projects/sqlite4pp/ 欢迎各位开发人加入!如何使用?1. 从这里下载最新的版本,http://sourceforge.net/projects/sqlite4pp/files,目前仅有基于MSVC2010的版本,欢迎各位开发者加入,开发其他平台和版本。2. 将 include 中的头文件 sqlitepp.h 加入到你的工程, lib中的 sqlitep
阅读全文
摘要:SQLite 强大,大家都知道,但是原生是C接口,用来其应用层稍微麻烦些。今天做了个简单的C++封装,使用面向对象的方法来使用。优点:面向对象的方式,减少应用层的复杂性;缺点:暂对多线程环境支持不足。使用样例如下:// a simple example to use SQLitePP
void simple_example()
{ //define a connection SQLitePP::DBConnection conn; // connect to a database int rc = conn.connect("D:\\mytestdb.db"); if (r
阅读全文
摘要:以前,Qt windows 只有商业版才支持 Visual Studio, Opensource 版只能使用 MinGW, 无论开发调试都很麻烦。虽说最近 Qt 出了一款 QtCreator 用来专门支持 Opensource 开发,而且配备了强大的 debug helper 来支持 MinGW(Linux/Unix/Mac 下直接支持 GCC, GDB),但是在windows上开发,最爽的还是 Microsoft 出品的原生编译器和调试器, 相信你也不喜欢看到 MinGW 编译出来的 debug 版本 QtCored4.dll 有几十兆吧。经过前几天研究发现, Opensource版本也可以
阅读全文
摘要:声明: 本文中有部分理论和思想源于《C++设计新思维:泛型编程与设计模式之应用》一书,向作者 Andrei Alexandrescu 大师致敬!写多了代码,如果要想代码以后便于维护,系统结构清晰,便于扩展,必然要使用一些能够复用的、已经经过实践证明是成功的、大家约定俗成的方法;自从多年前“四人帮”(GangofFour)那四个老爷子总结出来23中模式后,大家一致探讨、沿用至今,被实践证明是最好用的,最成功的。单例模式(Singleton)是其中最常用、最实用的一种模式。什么是单例(Singleton)呢?Gof说:“保证一个class只有一个实例(instance),并为它提供一个全局访问点(
阅读全文
摘要:最近用 Fedora 9, 但是如果没有音乐响起,那么无论是学习 还是 上网冲浪 或者 开发 等等 都将变得没有乐趣!!但是 Fedora 9 中并没有包含现在流传最多的音乐媒体 格式 ,如 mp3, rm。由于版权问题,默认是没有包含相应解码器的, 看了下 MPlayer 的Codecs, 好久没更新了。本来想用 Kaffeine 的, 但是 搞了半天 装了个 win32codecs 后发现 cook.so 还需要 libstdc++5,我的是 libstdc++6,郁闷。 下了个 5, 搞了半天还是不爽。又下了个 RealPlayer 11, 但是界面简陋极致,而且经常 crash。于是想
阅读全文
摘要:Fedora 9 在刚发布的时候我就下载了,由于种种原因,到昨天才装。用了之后感觉比 Beta 版本好多了,而且漂亮友好的图形操作界面应该是Fedora 有史以来最好的,Xserver 速度明显提升。下面是几张截图,分享一下: 对了,本人使用 KDE 41. System monitor 系统监控器,容易让人想到 M$ Windows 下的 任务管理器。 进程页面:性能页面,KDE4图像处理明显提升,细腻真实感很强,M$ 如何能比? 不过由于本人保存的时候用的 24位 jnp,可能失真。2. 桌面环境截图:下面是新的文件管理器,效果还是友好程度都很棒!KDE 4 的桌面地球模拟,类似 goog
阅读全文
摘要:一直以来,Linux 环境下没有一个好用的C/C++ 开发环境,让很多初学者以至老手都感到非常不顺手,尤其是当习惯了VC强大的集成调试功能后,更是感觉不顺手。也许有人说,高手用Makefile 和 命令行,我也用过Make,更是用多了命令行,当你面临一个大型软件系统出了怪异问题时,或者开发过程中需要DEBUG 时,怎么办呢? printf ? 还是 log ? 我不反对这样做,但是效率也未免太低了!!!!社区自由软件狂热追求者们面对这种问题有过很多尝试,不可否认 KDevelop 很强大, 但是,最让我觉得不爽的就是它对 共享库(Windows下叫动态库)支持太不友好了; 后来有几个高人出来设
阅读全文
摘要:那天看高人的代码, 当然, 太多了, 编译就要半个多小时在 双核机器上!!!!!!!!!!见到这些片段, 感觉很不错!#define EXECUTE_IF_FALSE_BREAK( retVal, exeFUN ) { /retVal = ( exeFUN );/if ( retVal == false ) /{/break;/};//..............................bool flag;bool fun(int, char);do {EXECUTE_IF_FALSE_BREAK( flag, fun(8, 'c') );//.....}while (
阅读全文
摘要:;-----------------------------------------------------------------------------; __write_int_; ==========================;;Proc For write a int decimal to screen, int data in BX;-----------------------------------------------------------------------------__write_int_ proc near push cx push ax;proc...
阅读全文
摘要:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;NOTE: This ASM file is generated by: ; Simple C minus Compiler v1.0; CopyRight (C) 2002-2008 Lonelyforest. All rights reseved.;; Because its not perfect, so this file maybe have bug! use it carefully!;;;;;;;;;;;;;;;;;;;;
阅读全文
摘要:类似的话题也讨论过很多,实际用到, 真是麻烦;首先,Windows 平台下的C/C++编译器,大家肯定会想到VC,个人觉得VC中最好的就是 VC6了,不过缺点很多,我们稍后改造它! Borland C++ 我没用过, 不知道如何。 Borland C++ Builder 感觉作程序界面比较方便, 如果你用来学习C++,或者写一些控制台小程序,或者作 DLL,这个东西不适合,但是它确实是好东西! DEV-CPP, 确切的来说是个编辑器(IDE), 它用的是 gcc的win 版本, 也就是 MINGW;这个东西也很好用, GDB 最近更新一下之后很好用了の。 Intel C...
阅读全文
摘要:作者:Scott Field 这篇文章是关于C++语言的一个新的扩展——标准模板库的(Standard Template Library),也叫STL。 当我第一次打算写一篇关于STL的文章的时候,我不得不承认我当时低估了这个话题的深度和广度。有很多内容要含盖,也有很多详细描述STL的书。因此我重 新考虑了一下我原来的想法。我为什么要写这篇文章,又为什么要投稿呢?这会有什麽用呢?有再来一篇关于STL的文章的必要吗? 当我翻开Musser and Saini的页时,我看到了编程时代在我面前消融。我能看到深夜消失了, 目标软件工程出现了。我看到了可维护的代码。一年过去了,我使用STL写的...
阅读全文
摘要:1. 传指针时,我们可以通过指针来修改它在外部所指向的内容。但如果要修改外部指针所指向的对象是不可能的。例如传递外部指针到函数内来分配空间,必须传递指针的指针或指针的引用。 2. char carry[10] = {0}; 编译器会将其后所有的东西都置0; 3. 函数返回值为const时,返回的东西付给一个类型相同的标示后其不能为左值; 4. const int *i; int const *i; int * const i; 前两个功能相同,说明I所指向的内容不变;最后一个说明指针指向的地址不变,但内容可变。 5. 类中的const成员函数。定义为在原型后加const。常量函数不能修改类中的
阅读全文
摘要:1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要 因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要 学的是一门语言; 5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可 以引伸出很多知识点; 6.会用Visual C++,并不说明你会C++; 7.学class并不难,templ
阅读全文
摘要:状态机实现:/**: nextToken & * primary interface ...... * return a Token from source file(list_of_source) & * author: lonelyforest * data: 2006.03.16 */ //----------------------------------------------------------------------------- Token& Scanner::nextToken() { if (m_pushed ) { m_pushed = fal
阅读全文
摘要:说明: 此词法分析器所支持的关键字和操作符号都是 C-(mini C)的,关于 C-, 可以参阅 《编译原理及实践》附录; 以下为关键字和操作符定义:enum tokenType { // reserved Keyword k_INT = 0/* int */, k_ELSE/* else */, k_RETURN/* return */, k_VOID/* void */, k_IF/* if */,k_WHILE/* while */, k_READ/* read */, k_WRITE/* write */, // operations ASSIGN/* = */, PLUS/* + *
阅读全文
摘要:一、思路: 使用容器vector<string> 来缓冲文件内容,以便增加效率,以前的总是用getline(FILE*, ...) 或者别的,总之,都要从磁盘不断读取,不断操作,效率肯定不高。 这个思路主要是受到《C++ Primer》3 的影响,其中有个文本操作,采用这种方式。 从文件中具体分离出一个个字符,当然也就简单的多了。 然后再使用状态机,来实现 标识符提取, 这种方式的优点是可以很容易的根据你的需要来扩充或者修改。而且清晰明了哦。二、实现(部分):1使用标准的纯C++实现, 估计可以在 Unix 上兼容。不过没有测试;一下是包含头文件:#include <fstr
阅读全文
摘要:#include <string>using namespace std;/* * assistant function, * return a string, get tow string&, * use to change a filename's extern name;* author: lonelyforest* Date: 2006.03.15*/string change_file_ext(const string& filename, const string& new_ext){ int dot_pos = 0; string te
阅读全文
摘要:static int findNum( const char* str){ char Num[8]; int i = 0; int reval = -1; const char* p = str; while ( *p && ((*p > '9') || (*p < '0'))) p++; if ( *p ) { while (*p <= '9' && *p >= '0' ) { Num[i++]= *p++; } } else { return reval; } if (
阅读全文
摘要:在C++ Builder中使用 SynEdit 插件时,功能的确强大,但是常用的 查找和替换功能却不好作了,尤其没有接触过的人,太麻烦了。其实 SynEdit 自带了搜索功能,很简单,很强大!1. 准备工作: (1)在你设置好的界面中加入 SynEdit 控件,我的命名是 rve,当然,这是个误会,我是怕改多了程序麻烦. (2) 加入SynEditSearch控件, 我的命名是SynEditSearch1,默认。 (3) 将 rve(synEdit) 的 SearchEngine 的改为 SynEditSearch1。 (4) 加入FindDialog控件, 命名为 FindDialog1;.
阅读全文