VC中使用ATL库实现正则表达式匹配(ADODB::Error)

1. 确保项目属性中ATL使用处于打开状态。

如VS中项目属性常规—ATL使用—静态链接到ATL

2. 在使用时加上头文件

#include "atlrx.h"

3. 使用示例代码 

CAtlRegExp<> reUrl;
REParseError status = reUrl.Parse(正则表达式字符串);  
if (REPARSE_ERROR_OK != status)  {  //正则表达式错误
  return ;
}  
CAtlREMatchContext<> mcUrl;
if (!reUrl.Match(要匹配的字符串,  &mcUrl))  {  //匹配不成功
  return;  
} 

 4. 使用ATL常见错误

atlrx.h(705) : error C2226: 语法错误 : 意外的“ADODB::Error”类型

原因:跳转标签Error与工程中其它使用的冲突,如果使用了ADO,可在ADO连接使用代码中加上

#import "****adomsado15.dll" no_namespace rename ("EOF", "adoEOF") ,rename ("Error", "adoErr")  

但最好的办法还是直接把atlrx.h中对应的跳转标签直接修改了,只有三处

……
Error:
  pContext->m_Match.szEnd = sz;
……
    if (*sz == '')
     goto Error;
……
   case RE_FAIL:
    goto Error;
…… 

把这三个随便改个名就行了.

摘至:http://blog.163.com/lxz_jlu/blog/static/127966820122161479240/

原文地址:https://www.cnblogs.com/perfy/p/5329231.html