08 2010 档案

asn1c中 std::max编译冲突解决方法
摘要:1>------ 已启动全部重新生成: 项目: libasnparser, 配置: Debug Win32 ------1>正在删除项目“libasnparser”(配置“Debug|Win32”)的中间文件和输出文件1>正在编译...1>Main.cpp1>e:/work/libasnparser/libasnparser/position.hh(83) : error C2589: “(”: “::”右边的非法标记1>e:/work/libasnparser/libasnparser/position.hh(83) : error C2059: 语法错误 阅读全文

posted @ 2010-08-29 21:11 NBSTAR 阅读(448) 评论(0) 推荐(0)

Flex&Bison Tips (2010-08-27) 应用auto_ptr避免内存泄露
摘要:todo: 阅读全文

posted @ 2010-08-27 00:42 NBSTAR 阅读(183) 评论(0) 推荐(0)

Flex&Bison Tips(2010-08-27) 如何在VC中更好的断点调试flex&bison词法和语法分析器
摘要:断点设置:todo: 阅读全文

posted @ 2010-08-27 00:39 NBSTAR 阅读(196) 评论(0) 推荐(0)

Flex&Bison Tips(2010-08-26)如何改善 flex & bison 在VC下的编辑环境
摘要:我在VC下安装VC助手(VisualAssistX), 让它可以高亮显示C/C++语法,同时支持快捷跳转、自动联想、简单重构等功能。1. 将flex的输入文件命名为后缀 .cpp, 但是将这个.cpp文件从工程编译中排除,这样既可以方便在flex输入文件中写C/C++代码。同时编译也不会报错。2. 如果要让flex生成的头文件和源文件具有自己的名字,也很简单,在flex的输入文件中使用如下选项就可自己指定想要的文件名:/* 自命名输出文件 */%option outfile="Lexer.cpp" HEADER-FILE="Lexer.h" 通过以上设置 阅读全文

posted @ 2010-08-27 00:34 NBSTAR 阅读(507) 评论(0) 推荐(0)

windows 下 flex 命令行批处理文件
摘要:1. 通过cygwin 安装 flex2. 新建一个命令行批处理文件调用flexflex.bat@set flex_dir="E:/SDK/cygwin/bin"@set Path=Path;%flex_dir%@REM flex command line@REM Usage@REM flex.bat %grammer_file_name@REM @REM flex parameters used in our command line@REM --nounistd not include unistd.h @REM --never-interactive t... 阅读全文

posted @ 2010-08-19 21:32 NBSTAR 阅读(438) 评论(0) 推荐(0)

GNU flex unistd.h在VC下的编译问题
摘要:问题现象:...: fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory 原因,flex生成的代码如下:#ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first 阅读全文

posted @ 2010-08-19 21:28 NBSTAR 阅读(928) 评论(0) 推荐(0)

如何让qmake生成的Makefie不链接Qt库
摘要:在CSDN上搜索了一下,大部分关于qmake的实例都是链接到Qt库,包括QtCore和QtGui。如果只是想写一个普通的C++命令行程序,链接Qt库显然是使得最终生成的程序尺寸变得臃肿,而且必须要安装庞大的Qt包。那么如何让qmake不链接到Qt库呢? 默认情况下,qmake是要链接QtCore和QtGui两个库的。即使你什么也不做,因为这是默认行为。通过以下配置可以解除这种配置。#不需要QT CONFIG -= qt 简单吧,这下清净了,我们明确告知qmake这不是qt程序,只需要qmake为我们生成普通Makefile,其他什么也不要多做。以下是我为boost asio中一个简单tcp服务 阅读全文

posted @ 2010-08-09 23:53 NBSTAR 阅读(522) 评论(0) 推荐(0)

以boost factory & boost function实现对象工厂设计模式
摘要:工厂对象模式简介在GoF的《设计模式》一书中,对Factory Method/Object Method 意图描述如下:定义一个用于创建对象的接口,让子类决定实例化是哪一个类。 Factory Metho是一个类的实例化延迟到其子类。其结构图如下: 其中, 类 Product 定义了一类对象的接口。 ConcreteProduct 实现 Product 的接口。 Creator是工厂方法的包装器。ConcreteCreator 类实现Creator的接口。基于以上结构,每个ConcreteProduct必须带有一个 ConcreteCreator, 用来产生特定的ConcreteProduc. 阅读全文

posted @ 2010-08-05 21:42 NBSTAR 阅读(1047) 评论(0) 推荐(0)

Boost.Asio和ACE之间关于Socket编程的比较
摘要:ACE是一个很成熟的中间件产品,为自适应通讯环境,但它过于宏大,一堆的设计模式,架构是一层又一层,对初学者来说,有点困难。 ASIO是基本Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。 最近分析ASIO的源代码,让我无不惊呀于它设计。在ACE中开发中的内存管理一直让人头痛,ASIO的出现,让我看到新的曙光,成为我新的好伙伴。简单地与ACE做个比较。 boost::asio是一个高性能的网络开发库,Windows下使用IOCP,Linux下使用epoll。与ACE不同的是,它并没有提供一个网络框架,而是采取组件的方式来提供应用接口。但是对于常见的情况,采用一个好 阅读全文

posted @ 2010-08-03 23:28 NBSTAR 阅读(209) 评论(0) 推荐(0)

导航