GRETA - 正确在 Visual C++ 中使用正则表达式






4.12/5 (13投票s)
介绍如何在 Visual C++ 中构建 GRETA。
引言
GRETA 为您的 C++ 应用程序提供了 PERL 5 正则表达式的所有强大功能。这是 GRETA 的主页。今天,我们既不讨论正则表达式,也不讨论 GRETA 库中的模板类,因为您可以在 GRETA 主页上了解它们。在这里,我将一步步解释如何在 Visual C++ 中添加和构建 GRETA 库。
下载
从 GRETA 主页下载 GRETA 的源代码。例如:GRETA 2.6.4 for VC6,您将得到 'greta-2.6.4-vc6.zip'。或者,您可以从本网站下载。请不要下载 GRETA 的*.lib 文件(例如greta.lib 等)。您可能会在 Microsoft 提供的*.lib 文件中找到 GRETA。但greta.lib 可能不满足您的需求。它可能会导致链接错误。
用法
GRETA 库包含六个程序文件
- regexpr2.h
- regexpr2.cpp
- syntax2.h
- syntax2.cpp
- restack.h
- reimpl2.h
在您的工作区中为 GRETA 创建一个新的“Win32 静态库”项目
- 步骤 1:创建一个空白工作区。例如,“Test”
- 步骤 2:创建将使用 GRETA 的主项目。例如,“Console”类型“Main”
- 步骤 3:创建 GRETA 项目。选择“Win32 静态库”并使其成为 Main 项目的依赖项。然后,按 OK 按钮,保持“预编译头”和“MFC 支持”未选中
- 步骤 4:将 GRETA zip 包中的这六个程序文件复制到 GRETA 项目的目录中,并将它们添加到项目中
- 步骤 5:将一个示例代码复制到
main()
函数中。将#include "regexpr2.h"
更改为#include "..\greta\regexpr2.h"
。这些示例在 GRETA zip 包的 HTML 文件中。选择“Main”项目作为活动项目,然后编译并运行项目
这是您最终得到的结果
现在,我们已经成功完成了 GRETA 项目。[下载示例项目]。
如果您的项目使用 Unicode,或者您的主项目是 DLL 类型,请继续。
Unicode 版本
如果您的项目(使用 GRETA)是 Unicode 版本,您必须将 GRETA 项目设置为 Unicode 版本。例如
- 步骤 1:为您的 GRETA 项目添加“Unicode Debug”配置
- 步骤 2:在项目设置中,将“_UNICODE”和“UNICODE”宏添加到相应“Unicode Debug”配置的 C++ 常规预处理器定义中
- 步骤 3:为“Main”项目以及“Release”配置重复步骤 1 和步骤 2。
您将为 GRETA 和您的主项目获得“Unicode Debug”和“Unicode Release”配置。
运行时库
在许多情况下,当您的主项目是 DLL 类型时,您必须确保 GRETA 使用与您的主项目相同的运行时库,否则您将收到链接错误。
- 步骤 1:找出您的主项目使用的运行时库
- 步骤 2:为 GRETA 项目选择相同的运行时库。现在,您可以成功链接。
问:为什么我们需要下载 greta.lib,以及为什么下载的 greta.lib 会产生链接错误?
答:这是因为“Unicode 版本”和“运行时库”问题。因为不知道下载的 greta.lib 是否为 Unicode 版本,也不知道下载的 greta.lib 使用哪个运行时库,所以可能会产生链接错误。