VCではATLライブラリを使用して正規表現のマッチングを実現しています(ADODB:Err)

2750 ワード

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 C 2226:文法エラー:意外な「ADODB:Error」タイプ
理由:ジャンプラベルErrerとプロジェクトで使用されている他のものとの競合で、ADOを使用すれば、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/1296682061479240/