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 "****\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF") ,rename ("Error", "adoErr")  

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

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

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

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值