...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

C++

VS2005: セキュアなCライブラリ

C++

VS2005ではC標準ライブラリを拡張したセキュアなバージョンの関数を使わないとコンパイラに怒られてしまう. VSを使うならばMS仕様の関数に変更するか, #ifdef などを用いて関数を使い分けるのが筋というもの. だが,それらの関数は非標準なので他のライブ…

Effective C++

Effective C++ 【改訂第2版】 アスキーアジソンウェスレイシリーズ―Ascii Addison Wesley programming series作者: Scott Meyers,吉川邦夫出版社/メーカー: アスキー発売日: 1998/04メディア: 単行本購入: 4人 クリック: 43回この商品を含むブログ (77件) を…

VS2003

C++

VS2003で,こんな構造のプログラムを書いた. class A { public: virtual void run() { puts("A::run()"); } }; class B : public A { public: virtual void run() { puts("B::run()"); } }; class C : public B { }; int main(int argc, char* argv) { A* a…

std:string <> std:wstring

C++

この間 std::string と std::wstringの相互変換関数が必要になって作ったので投下. Windows 専用だけど,お好きにどうぞ. もっとメジャーな実装がある,間違ってる,などあればよろしく. // strconv.h #pragma once // このヘッダを使うときはアプリケー…

コーディング規約

C++

コーディングをしていると関数名の付け方ですごく悩んだりする. 特に bool 値を返す関数だと,bool isXxxxxx() const bool hasXxxx() const bool canXxxx() const bool dirty() const bool isEmpty() constのような文型の名前を付けるのが良いとされている…

メンバ関数テンプレート

C++

VS.NETのC++コンパイラは標準準拠レベルがかなり向上していると聞いている. でも,テンプレートにはまだ問題があるみたい. さあ,C++の深遠(といってもその入り口付近),メンバ関数テンプレートです.どうしてもリンクエラーが出ると思っていたら,メン…

Cマガ

やっべぇ. VS2005とかGCJとかC#3.0とか. そんな記事読んだら楽しくて電車の中でもニヤニヤしちまうじゃないか. 技術系専門誌で満たされる俺だめぽ.あー,来年度からどないしよかな. 鍛えた腕の振るいどころがなくなってしまうなあ. 仕事ではまったくも…

シリアルポート

B4に相談されたのでシリアルポート経由でセンサとやりとりするコードを見た. ごちゃごちゃとコードをいじる・・・. その結果わかったこと. 実行するたびにセンサから受け取ったはずのバイト列が異なっている. が,稀に正常な値が送られてくる. が,バイ…

C++のGDI+でダブルバッファリング

C++

さあ,誰も読みそうにない記事ができたぞ(w研究で,久しぶりにMFCを使ったコードをガリガリと書いてるんやけど,ダブルバッファリング関係の処理って,いつも完璧に忘れてしまう. だから,いつも後回しにして,リリース直前までちらついている画面で開発…

assert (3)

C++

さて,Assertion の説明も最終回となりました. 今回は,唯一気をつけなければいけないことを説明しようと思います. 既に assert は,NDEBUG マクロを定義するとなかったことにされることは説明しました. それでは,次のようなコードはどうなるでしょうか…

assert (2)

C++

前回の記事で Assertion の必要性が理解してもらえたでしょうか. この記事では, VC++ の Debug/Release の違いを assert を使う面から説明したいと思います. 前回のソースコードの先頭付近で assert.h をインクルードしています. これをすることで asser…

assert

C++

研究の実験をするときには,何かしらのプログラミングをすると思う. そしてバグが出ないことを祈りながら,恐る恐る実験をする・・・. うまく実験が終わっても,まだ安心はできない. ログはちゃんと取れた? おかしなデータはないか? データの検証をして…

boost::shared_ptrに翻弄される

C++

使い方が悪いのかなんなのか,どうもよくわからないバグが出る.typedef boost::shared_ptr<Object> ObjectPtr; typedef std::list<ObjectPtr> ObjectPtrList;として,ObjectPtrListのコンテナを作成しただけのはずなのに,プロセスが終了しなくなってしまう. なんとなく循環参</objectptr></object>…

CView::OnClose()

うわー,今までビューのOnCloseで後処理を書いていたのだけど,ここって実は呼ばれてないのか!? それでか・・・. ブレークポイント置いても止まらないし. メモリリークしてるって怒られてたし. はぁ〜,まだまだ知らないことはたくさんあるな. 一回く…

クラスの外と中

研究室で,クラスの外と中という話をよくするのだけど,なんだかあまりわかってもらえないようなのでここに書く. コードはC++のものになってしまうが,大体どんな言語でもオブジェクト指向なら一緒(ほんまか?)だと思われるので,大丈夫だろう. 適当に読…

C++ クラス設計に関するノート

C++

WebPageの紹介. C++ クラス設計に関するノートのページはC++をやっている人にとって必読でしょう. Effective C++を読んでたら必要ないのかもしれないけども. まとめられて短くなっていますが,Effective C++よりわかりやすいかな? とりあえず,ここの文…

CSplitterWnd

今日も4回生T君の実装をお手伝いした. 今回は,エクスプローラーのように画面を分割するにはどうしたらいいのかと, 単一のViewと分割されたViewを動的に切り替えるにはどうすればいいのか.なかなかうまくいかなかったけど,両方実現できた. 前者はCSplit…

CFormView から CView へ変更

C++

受講支援システムのノート作成インタフェース部分をCFormViewを継承して作っていたのだけど, どうも受け付けてくれないキーがあったので親クラスをCViewに変更中. ちょっとややこしい. T宮氏の研究も決まってきたみたいだから,あんまり猶予はないなぁ. …

Boost

C++

とうとう Boost ライブラリを導入してしまった. しかし,こりゃ確かに便利なのがいっぱいだ. インストールも,機能を絞ったら簡単にできるし. ちょうど最近バージョンアップされたばっかりみたいだし,いい機会だったかな. C++もまだまだ楽しめそう〜.

あーあ

C++

多数のクラス間でたらいまわしにしているクラスがあって,ポインタの管理がめっちゃややこしいので全部値で受け渡ししていたのだが(ぉぃ), どうやらそうもいかないようで,そこがボトルネックになりそうな予感. しょうがないので直そうと試みるが・・・…

DirectShow : 指定ウィンドウへのレンダリング

上のスクリーンショットは,ほぼできてきたクラスを使ったサンプルアプリケーション. そろそろ受講支援システムへの組み込みもできそうだな.ピクチャーボックスへのレンダリングができるようになった. 別にピクチャーボックスじゃなくても,HWNDでウィン…

DirectShow : プレビュー+キャプチャ+サンプルグラバ

さて,なかなか大変なプログラミングだったが・・・. ようやくまともに動くようになった.レンダリング時のグラフは,家のUSBカメラではこうなる. ソースフィルタ > スマートティー > サンプルグラバ > AVI Mux > File Writer > レンダラ大学のPCIキ…

DirectShow : AVIファイルへの書き出し

キャプチャができたと思っていたのだけど,どうやらPCが変わるとうまく動かないようだ. とりあえず,家でも大学でも動くようにしたつもりだけど,大学でやってみないとなぁ.それと,どうもAVIファイルへの書き出しがうまくできてない. なんか成功して再生…

DirectShow : Mux フィルタ

動画の記録をするために,またもやDirectShowの世界へ突入中. 今度は前より少しだけわかるみたい. 初めて自分でフィルタを接続できた(^^; これで,プレビューあり/なしを選択でき,かつ,キャプチャすることができた. 今のところは無圧縮なのでデータ…

リファクタリングの道のり・3

C++

できるようになったことリスト ・リマインダーメモ作成 ・ページ結合機能 ・カメラ操作(キーボードでの操作を含む)自分用のメモでしかないのだが(^^; さて,あとは少しバグ取りをしたらそれでいいだろう. 作業自体はまだ残っているけどなあ. 前より…

リファクタリングの道のり・2

C++

http://www.hit.dj.kit.ac.jp/~haru/cgi-bin/mt/archives/000130.html>後は,作成した電子ノートをファイルに保存できるようにしたら,大体終わりかな.でーきたっと.さて,プログラムの整理がかなり進んできて,通常のノート作成には使えるようになった,…

リファクタリングの道のり

C++

研究プログラムのリファクタリングがかなり進んできた. これまでで,マウスでの自由描画と,キーボードでのメモ作成がちゃんとできるようになった. 後は,作成した電子ノートをファイルに保存できるようにしたら,大体終わりかな. まあ,このリファクタリ…

ソースカウンタ

C++

友人との会話から,ちょっと気になったので作成中のプログラムの行数をカウントしてみた. 以下,その結果. プロジェクトファイル 「Note.vcproj」 結果 ファイルタイプ : Visual C++.NET プロジェクト スキャンフラグ : 0x1 ファイル数 : 52 総ファイルサ…

Microsoft DirectX 9.0 SDK Update (Summer 2004)

少し前に、DirectX 9.0 SDK の最新版が公開された。 また家のPCと大学のPCにインストールしておかなきゃなー。 あと、インストール方法の解説ページを更新しなければ。それにしても何が変わったのだろう?

interface / abstract class

C++

C++とJavaの違いに多重継承ができるできないってのがある。 でもあまり詳しく説明されないので、前から気になっていた。 だから考えてみた。 以下、JavaとC++の用語が入り乱れます。すいません(^^;まず、継承には3種類ある。 ・継承 ・インタフェース継…