« 事故米不正転売問題 | トップページ | Ready Boost »

2008年9月13日

CAltRegExp

CAtlRegExpってATL Server向けのクラスなんだけど、結構便利だったので普通に使っていた正規表現のクラスが、VC2008 (SP1)から消えていたんですね(^^;
コンパイルができないんで、いろいろ調べていたら”atlrx.h”がなくなっている…
stl::tr1::regex系で置き換えるみたいだけど、結構使っている場合には、コードの書き換えが大きいですね。
ATLをそのまま使っている人が少ないので、それとWTLを組み合わせている人は、更に少ないと思うんだけど、VC7.1からバージョンアップしてしまうと、互換がなくなるので面倒です。

Windows Vistaにしてしまったので、VC9になってしまったのですが、こんな罠があったとは…
ATL+WTL使いにはかなりきつい変更です。

---追記---
正規表現の動作も微妙に違うみたい(^^;
CAtlRegExpよりもstl::tr1::regexのほうが一般的な気がします。ライブラリによって正規表現って微妙な違いがあるのがちょっと面倒だなぁ。
ATL::CStringを多様していたので、stl::stringに置き換える必要もあったりと、いろいろ面倒ですねぇ。
今後は、ATL系を使わずに、STLで書いてしまうのがいいのかな。
STL+WTLかSTL+SDKがベストなんだろうか。

|

« 事故米不正転売問題 | トップページ | Ready Boost »

コメント

ATL Server がシェアードソース化されたので、それを組み込むといいかもしれません。
まだ私もVC9に組み込んだことがないので、問題は発生するかどうかわかりませんが。

■ATL Server がシェアードソース化! - ATL Server
http://www.ailight.jp/blog/sha256/archive/2007/01/25/13536.aspx

■ATL Server Library and Tools がリリース - ATL Server
http://www.ailight.jp/blog/sha256/archive/2007/03/05/13625.aspx

投稿: 社本@ネオニート | 2008年9月14日 午前 10時10分

CodePlexですね。
http://www.codeplex.com/AtlServer

ちょっと思った動作をしない(使い方を間違えていたのかもしれないけど)ので、stl::tr1::regexに置き換えてみたのですが、問題となっていた動作が発生しなくなったので、まあ由としてます。
stl::tr1::regexを使った方が、一般的な正規表現のような気もします。CAltRegExって微妙な感じです。
他の部分もAtlServerに依存していれば、ダウンロードするんですが、依存度が少ないので、今後は、stl::tr1::regexを使った方が良い気がします。

投稿: ふるかわあきひと | 2008年9月16日 午後 09時33分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2700/42466366

この記事へのトラックバック一覧です: CAltRegExp:

« 事故米不正転売問題 | トップページ | Ready Boost »