MFCのCStringライクなMCStringクラスを作ってみた。
Linux等でも、WindowsのMFCの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
まだ変更する可能性大。