用户操作
[即时聊天] [发私信] [加为好友]
c0ffee1982ID:c0ffee1982
12544次访问,排名9177(-2)好友0人,关注者0
c0ffee1982的文章
原创 114 篇
翻译 0 篇
转载 0 篇
评论 2 篇
最近评论
DDGG:谢谢你的文章,没有这篇文章的话,我根本无法成功编译Greta。
但是用VB6编译上面例子里的Greta项目会有42个警告,请问这属于正常么?
谢谢!
antimatterworld:很好.很强大
文章分类
收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 GRETA 正则表达式库收藏

    新一篇: 三十分钟掌握STL  | 旧一篇: 一个托盘程序演示 -闹钟 Alert

    ..:: Greta ::..
     
      [原创文章,转载请保留或注明出处:http://www.nk975.com/sswater/zh/greta/index.htm]  
     
          GRETA 为 C++ 提供了兼容 Perl 5 的正则表示支持。GRETA的主页位于:http://research.microsoft.com/projects/greta/。今天,我们并不讨论正则表达式本身以及 Greta 与其他正则表达式之间有什么不同,因为这方面的资料很多。我将主要介绍怎样在 Visual C++ 中正确的使用 Greta,举例一步一步进行说明:  
     

    下载
     
          请在 GRETA 主页 上下载源代码来使用。比如:GRETA 2.6.4 for VC6,你将得到压缩文件:'greta-2.6.4-vc6.zip'。也可以从本站下载源代码  
          请不要下载 lib 形式的 Greta 库。在很多网站上你可能找得到类似 greta.lib 的 lib 库,但是这种 lib 版本并不一定满足你的需求,或者可能产生连接错误。  
     

    使用
     
          GRETA 库中一共有 6 个程序文件:
    • regexpr2.h
    • regexpr2.cpp
    • syntax2.h
    • syntax2.cpp
    • restack.h
    • reimpl2.h

        可以有两种方法使用:
        (1) 直接把这6个文件加入到 project 中。(不推荐)
        (2) 在 workspace 中专门为 Greta 创建一个类型为:'Win32 Static Library' 的 project 。

     
     

    第1种:直接加入 Project (强烈不推荐)
     
          强烈不推荐直接将 greta 的文件直接加入 project。你如果一定要这么做,请注意一下,如果你的项目使用了 precompiled header,请注意添加 #include "stdafx.h" 到 regexpr2.cpp 和 syntax2.cpp 中。  
     

    第2种: 创建一个 'Win32 Static Library' 类型的 Project
     
      将一步一步说明:

    第一步:创建一个空的 workspace。例如起名 'Test':


    第2步:创建主项目,这个项目将使用 Greta。例如控制台类型,起名 'Main':


    第3步:创建 greta 项目。选择 'Win32 Static Library' 类型。并且将它作为 'Main' 的依赖。按 OK 以后,不选择 'Pre-Compiled header' 和 'MFC Support'。


    第4步:将下载下来的 zip 包中的 6 个文件放入 greta 的目录中,并添加到 greta 项目中来:


    第4步:从帮助文件中复制一个例子程序到主项目中来。帮助文件就是下载的 greta 压缩包中的 htm 文件。注意要使用 #include "..\greta\regexpr2.h"。选择 'Main' 为活动 project,然后编译并运行:


    你将得到运行结果:


    目前为止,我们已经成功完成了一个使用 greta 的项目。[下载本页中的例子程序]

    如果你需要 UNICODE 版本,或者你使用 greta 的程序是 dll,那么请继续下面的章节。
     
     
     
       
     
    ..:: 高级 ::..
     

    1. UNICODE 版本
     
      如果你使用 greta 的项目是 UNICODE 版本,那么 greta 项目也必须是 UNICODE 版本。举例说明:

    第1步:给 greta 项目添加一个 'Unicode Debug' 配置:


    第2步:在项目设定中,添加 '_UNICODE' 和 'UNICODE' 两个预定义宏。(C/C++, General, Preprocessor defininitions)


    第3步:重复前两步,则可以为 Release 和主项目都添加上相应的 Unicode 版本。
     
     

    2. Runtime library
     
      在很多种情况下,特别是在主项目是 dll 时,你需要确认一下 greta 项目和主项目使用相同的 runtime library,否则你可能会得到一个连接错误。

    第1步:首先确定主项目使用哪一个 runtime library:


    第2步:在同样的位置,修改 greta 项目,使 greta 项目使用的 runtime library 与主项目一致。这样,你就可以正确的连接了。
     
     

    3. 为什么不推荐下载 greta.lib
     
          问:为什么不推荐下载 greta.lib 以及为什么会有连接错误?  
          答:就是基于前面所说的两点原因。因为下载下来的 lib 文件,是否是 UNICODE 版本未知,使用哪一个 runtime library 也是未知,因此不一定与你的主项目一致,如果不同就会产生连接错误。

    发表于 @ 2007年11月19日 13:51:00|评论(loading...)|编辑

    新一篇: 三十分钟掌握STL  | 旧一篇: 一个托盘程序演示 -闹钟 Alert

    评论

    #DDGG 发表于2008-06-03 18:10:17  IP: 58.246.9.*
    谢谢你的文章,没有这篇文章的话,我根本无法成功编译Greta。
    但是用VB6编译上面例子里的Greta项目会有42个警告,请问这属于正常么?
    谢谢!
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © c0ffee1982