MFCのCStringライクなMCStringクラスを作ってみた。

Linux等でも、WindowsMFCのCStringクラスを使いたい!という時や、
MFCではなくて、Win32SDKを使うけれども、CStringクラスは使いたい!と思うときがあるはず。
まぁWin32SDKでMFCを使うモードにすればCStringも使えるんだけど、そのためだけに、MFCをサポートするのは、馬鹿らしいので作ってみた。
ちなみに、std::stringの機能は全て使えるように実装した。まぁMCStringのメンバ関数のいくつかはstring系メンバ関数のラップをさせたりしている。

なぜCStringにMを付けたのかは、分かる人にはわかるだろうし、分からない人にはわからないでしょう。

現段階ではメモリリークのチェックもしていないので、それに対応しないと。
後、今後もWindows固有っぽいメンバ関数や、いまいち意味のよくわからない関数は無視した。

こいつら
メンバ関数 意味
operator LPCTSTR 文字列生データへの文字ポインタを返す.
Collate 地域固有の情報に基づき文字列を比較。大文字と小文字を区別.
CollateNoCase 大文字と小文字を区別しないCollate
FormatMessage メッセージ文字列を書式化
operator << アーカイブまたはダンプコンテキストに出力対応予定
operator >> アーカイブから入力
FreeExtra 以前に文字列用に用意されていた余分なメモリを解放
LockBuffer バッファ内の参照カウントを無効にし文字列を保護なんのこっちゃ
UnLockBuffer バッファ内の参照カウントを有効にし、文字列を解放なんのこっちゃ
AllocSysString MCStringデータから新規BSTRを確保
SetSysString 現在のMCStringオブジェクトを既存のBSTRに再設定
LoadString Windowsリソースから既存のMCStringオブジェクトを読み込む
AnsiToOem ANSI文字セットからOEM文字セットに変換対応するつもりなし
OemToAnsi AnsiToOemの逆

#include だけですべてうまく作動するようにヘッダと一緒にした。
まだ変更する可能性大。

ソースコードはここから見ることができる