zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    leetcode46 Permutations
    leetcode75 Sort Colors
    leetcode347 Top K Frequent Elements
    目录文件的浏览、管理及维护(二).作业
    目录文件的浏览、管理及维护(一).作业
    Linux系统基础.作业
    补码原码反码
    第一次测试感想
    总结八
    假期总结七
  • 原文地址:https://www.cnblogs.com/perfy/p/5329231.html
Copyright © 2011-2022 走看看