Windows Application」カテゴリーアーカイブ

名前空間が便利

ところで私はプログラミングで普通にクラスを作ります。

オブジェクト指向がどうのというカッチョイイ理由ではない。
ぶっちゃけ「インテリシンク」を利用するためである。

ドット(ポインタなら -> )と打てば選択窓が出てくる。
そのまま打ち続ければインクリメンタルサーチで目的の関数が見つかる。
選択された所で Enter すればスペルミスすることなく挿入できます。

何故この機能を使いたいかというと、、、、、
C++ は大文字小文字を区別するのでよく間違えるからです、、、、、
それにデルヒャァでプログラミングを覚えた人間はコレが普通なので、、、、、

それだけの理由で自作関数を適当なクラスにまとめたりとかしていた。
…のですが、関数を使いたいだけの理由で都度実体を作成では非効率だ。
オーバーヘッドとかの理由もあるけど書くのが面倒!

何かもっと効率的な方法は無いかなぁ?

あっ namespace があった、と昨日気がついた。

この方法なら名前空間名を書くだけでイケルじゃないの。
なんて無駄なことをしていたのだろう、もうお馬鹿さんだなぁ俺。

名前空間ってなんか using namespace するのが当然みたくなっている。
関数名の衝突を防ぐ目的で考えられたモンなんだからもっと利用すべ。

以上今日の小ネタ。

wostringstream

wostringstream って便利。
だって文字列だろうが数値だろうが普通に出力可能なんですもん。

/*    

?* #include <sstream>

?*/    

void DbgMsg(LPCWSTR str, int i)    

{    

?   std::wostringstream ss;    

?   ss<<str;    

?   ss<<i;    

?   ::SetWindowText(PetrushkaWnd->hWnd, ss.str().c_str());    

} 

わかんない人は「はあっ?」でしょうけどコレが可能って凄いです。
オーバーロードの使い道ってこういうことなんですねぇ、頭のイイ人は怖い。
意図的に分けている Pascal 系に慣れている人にはカルチャーショックである。
先頭の w は UNICODE で(略)

以上今日の小ネタ。

シーストリングリスト

で、フォルダから抜き出したファイル名をリスト化するわけだが、
動的配列を使うのが C++ の王道なんでしょうけど、、
デルヒャァの TStringList みたいなモンがあったほうが圧倒的に便利だ。

つーことで CStringList クラスを作ることにした。

さて、いつものようにソリューションエクスプローラを右クリック。
「追加」から「クラス」を選択し、ウイザードに従ってと。

あれ、、、、、調べたら MFC に同名クラスがあるのですか。

Tips4 CStringList への高速文字列設定方法

万行詰め込めて高速なデルヒャァの奴と違ってエライ面倒なのね、パス。
VCL は良かった(過去形)なぁ、正常進化をしていれば新しい奴も買ったのに。

まあそれはどうでもよくて。
minipoli で vector テンプレートを使った方法を作っているのでこいつを改造っと。
どうせオープンソースにするのでどんな感じかはそんときに。

WPF がどうのという時代に地味なコトやってんなぁ俺。
時代遅れも甚だしいがコレも勉強だ。