Mesoscopic Programming

タコさんプログラミング専門

C++

子ウィンドウをポップアップウィンドウに変更するには?

やっと分かったぞ! せっかく調べたのでその方法を公開します。 ポップアップウィンドウを作るとき、 CreateWindow関数だと超簡単に親ウィンドウ(=オーナーウィンドウ)を設定できるけど、 子ウィンドウからポップアップウィンドウに変更するとなると そう…

VusualStudio 2015 のテキストエディタのここが嫌いだ!

C++

誰が設計してるんだか。 このテキストエディタは。 昔のVisualStudioはこんなじゃなかったのに。 せめてオプションで機能を禁止できるようにして欲しいものだ。 この余計な機能を。 Googleで調べても禁止する方法が分からなかった。 検索ボックスに文字を入…

プロセス関係の関数を作った

プロセス関係の関数を作ったので置いておきます。 マルチプロセスのプログラムをデバッグしていると、 自分以外のプロセスを殺したくなりますよね。 いちいち手作業で殺すのはめんどくさいので、 自動で殺すためのお助け関数を作りました。 これでプロセス識…

レジストリのクラス

ずっと昔ながらのプロファイルばかり使っていましたが、 意を決してレジストリを使うことにしました。 そこで、レジストリのクラスを作りました。 TRegistry.h //---------------------------------------------------------------------------- /// @file T…

ソースコード置き場へのリンク

最近なぜかしら@PAGESが繋がらなくなったので、ソース置き場をSiteMixに代えました。 ついでにVisual Web Developer 2010 Expressでサイトの構成をいろいろいじってる最中なもんで、 リンク先が頻繁に変更になってます。 記事ごとにリンクを直すのも大変なん…

しつこいぐらいにログを出すテスト

一人でプログラムを作っているときにはそれほど必要に感じませんけど、 プロジェクトチームでプログラムを作っていると、 何が原因でプログラムが動かないのか気になりますよね。 そんなとき役に立つのが、やっぱログですよね。 そこで、しつこいぐらいにロ…

VC++のフィルター設定とかめんどくさいので

04/25 補助用のツールを作りました。 05/02 UNICODE 対応にしました。 05/04 ログ機能強化とフォルダ構成の変更を行いました。 main.h //---------------------------------------------------------------------------- /// @file main.h /// @brief VCプ…

エクセルのハイパーリンクを作るやつ

04/26 フォルダの中身をエクセルのハイパーリンクにするやつを作りました。 05/02 UNICODE対応にしたので記事を更新しました。 05/04 ログ機能強化とフォルダ構成の変更を行いました。 main.h //----------------------------------------------------------…

DLLとストリームのサンプルプログラム

DLLにしてみるテスト いつもよく使う関数やマクロを共通ライブラリにしようと思って、 どうせならDLLの練習を兼ねてDLLにしてみました。家で使っているのはVC++ 2010 Expressなんですが、 こいつは2012 Expressなどと違って空のソリューションが作…

DLLで文字列定数を使うときの注意点

たぶんだけど、DLLで作ったクラス内で文字列定数をインラインで使用することはできない。 ていうかたぶん、ポインタを使うことはできないのではないのか。 それはたぶん、DLLだから実際にリンクされるまでアドレスが決定しないからなんだろね。たとえば clas…

マクロ定義されたトークンを文字列に変換するマクロ

C++

Visual C++ 2010 Express 使ってるんですけど、 関数名とかは __FUNCTION__ とかで最初から文字列として定義されてるのに、 プロジェクト名とかは定義されてないんですよね。ソリューション名とかプロジェクト名をソースコード中で使いたいとき、どうすれば…

JanssonでJSONオブジェクトを並び順に表示するには

Janssonのjson_file_load()関数でJSONファイルを読み込むと、 JSONオブジェクトの中身は、ハッシュテーブル処理の関係ででたらめになりまが、 これを何とかJSONファイルの元の並び順にする方法を見つけましたので報告します。それはjansson2.5のdump.cの中に…

const 仮想関数の注意事項

C++

ついこの間まで正常に動いていた関数が、気が付いたら動かなくなっていた。 なんでだろ?と思ってよくよく調べたら、 継承元の関数に const を付けたときに継承先のオーバーロード関数に const を付け忘れていたからだった。 継承元と継承先の同名仮想関数で…

スコープ管理機能付きのポインタクラス

C++

C#には最初からスコープ管理機能付きのポインタがあるみたいですがC++にはありません。そこでC++用のそれを作りました。実は今までC++をCの高機能版程度にしか使っていなかったのでC++の奥深さや面白さを知らなかったのですが、最近もっとC…

Programming Tips #032:n桁区切り関数

C++

なぜ printf() は数字を区切ってくれないのか? ファイルサイズを表示するのに3桁区切りしたいなと思ってググったのですが、 C++ だとストリーム出力の方は対応してるらしいけど、 書式付文字列関数ではあいかわらずサポートされてないみたいなので自分で作…

Tips #018 デストラクタ中の仮想関数

C++

仮想関数は奥が深い。 仮想関数はどこでも仮想だと思ったら大間違いだ。 以下のプログラムを見て欲しい。 class A { virtual ~A() { foo2(); } virtual void foo() { printf( "class A :: foo()\n" ); } void foo2() { foo(); } }; class B : public A { voi…