您的位置:首页 > 其它

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

2016-03-28 15:31 495 查看
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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: