Natural Software

KinectなどのDepthセンサーを中心に活動しています

C++

Open Sound Control (OSC) ライブラリの oscpack を Visual Studio でビルドしてみた

C++

ちょっと必要になったので探してみたら、Visual Studio でビルドできそうなのがなかったのでいくつか試してみました。

「プログラミングの魔導書 Vol.2」の発売、おめでとうございます!

アキラさんから事前レビューの依頼と献本いただきました。ありがとうございます。 プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.2 『プログラミングの魔導書 Vol.2』予約開始! - Faith and Brave - C++で遊ぼう 『プログラミングの魔導書 Vol.2』…

テスト成功ごとにgitにコミットしてみる

確か@katzchangのツイートにだった気がするんだけど、「テストごとにgitにコミットすればコードの成長過程が残るよねー」って。 なるほど。 毎回ちゃんとコミットすればいいんだけど、よく忘れるのでmakeしてテスト実行する際にgitへのコミットも入れてみた…

GoogleTest をいろいろ使ってみる

Visual Studio で GoogleTest を使う - かおるんダイアリー 先日試したGoogleTestをもう少し触ってみました。 Primer - googletest - Getting started with Google C++ Testing Framework - Google C++ Testing Framework - Google Project Hosting このペー…

Visual Studio で GoogleMock を使う

先日書いた GoogleTest の兄弟分である GoogleMock を Visual Studio で使ってみた。名前の通りのモックライブラリ。 ビルドでも意外と躓いたのでメモ。 #前提として GoogleTest の設定ができてることとする はじめて使ったけど、結構いいかも 環境 Windows…

Visual Studio で GoogleTest を使う

先日の TDD BootCamp では Boost.Test を使って演習をした。 初めてBoost.Testを使ったけど、Boost自体のコンパイルに時間が掛かるは、テストコードのコンパイルに時間が掛かるわ、当日Linux+ emacs の環境で固まるわで、ちょっとアレなので、今仕事でも使…

コンストラクタの初期化子で起こった例外をキャッチする

new と delete と throw で気をつけること(自分用メモ) - IT戦記 ここを読んでいて、そう言えば初期化子で起こった例外って取れた気がすると思い調べてみたので備忘録として残す。 下記記事が詳しいので、細かい話はこちらへ^^; [迷信] コンストラクタ…

C言語 に慣れた人が書く C++ のソース

C++ のソースを見てると。この人普段 C言語がメインだな?と思うソースにお目にかかることが多い。 その人の傾向も並べてみる。 アスタリスクとかアンパサンドの位置が変数寄り C 言語がメインの人はポインタとか参照をこう書く char &r; char *p = &r; C++ …

危なっかしいなぁ〜と思うコード

C++

最近 C# と平行して、過去の資産を生かすために C++ でかれたコードを CLI でラップして C# から呼ぶことをよくやるんだけど、そのときの C++ のコードを見ていて危なっかしいなぁ〜と思う時を列挙しとく。 例外を投げるときにが例外クラス以外を投げる 整数…

C++ と C# を比べて・その2

こんどは C++ と C# を比べて C# のほうがいいところ #まぁ、独断と偏見なので悪しからず。 C# というか、Visual Studio のいいところになってるかも(笑) 参照ベースってステキ:) C# は参照ベースなので、インスタンスを戻り値で戻してもコストがかからない…

C++ と C# を比べて・その1

ここ1,2カ月で C# と C++/CLI での開発の機会があり、やっと C# と C++/CLI をそれなりに使えるようになった。 慣れてきたところで自分なりの C++ と C# の違いが見えてきた。 まずは C# が C++ と比べて残念なところ。 #まぁ、独断と偏見なので悪しから…

歩いた!

『ルカシム』君が歩きました! まるで成長する子供のよう(笑) #結局 Java ではまだできてないので C で書いてますが・・・ 参考 http://maglog.jp/shinagawaUML/Article520668.html もともとの倒立に光センサの値でターンする値を決めるだけ。 if ( ecrobot…

立った!

『ルカシム』君が立ちました! ジャイロセンサが届いたので早速二輪倒立に改造してソフトを入れてみた。 無事立つことができました♪ 参考 2009年3月 - marunomaruno-memo 注意 最後のほうで void user_1ms_isr_type2(void) となっているところは void user_1…

C++/CLI 素敵

C++

C++/CLI 素敵。 詳細はあとで書く(と思ふ)

nxtOSEK(LEGO MINDSTORMS NXT 用 C/C++ 環境)のセットアップ

昨日に続いて C/C++ 環境でのセットアップ。 今回も参考サイトの通りでほぼOK。 やっぱり少しハマったので注意点^^;

Windows で高分解能タイマ

Windows で高分解能タイマといえば time〜 のマルチメディアタイマを使うけど、実はこれも 1msec 弱の遅延があるらしい。 ここからさらに高分解能のカウンタ QueryPerformanceCounter を組み合わせて精度上げてみる。 ケース1・timeSetEvent のみ 10msec を…

MFC de FTP 通信 − その2

昨日の続きで FTP でのアップロード中に経過を表示したいので少し変えてみた。 CFtpConnection::OpenFile で CInternetFile のインスタンスを取得し、それを使ってファイルを書き込む。 触れた感じでの注意点は CInternetFile のインスタンスは使い終わった…

MFC de FTP 通信

ちょいと FTP クライアントを作成する必要がありそうなので調べてみた。 環境は Visual Studio 2008 SP1

「UI オートメーションによる自動 UI テスト」を Win32 に適用する

Windows アプリの UI テストを自動化しよう@@IT 少し古い記事だけど、ちょうど UI の自動テストをやりたかったので試してみた。 NUnit も初めてだったのでこの記事もあわせて読んだ。 で、このツールは 「Windowsアプリケーション(Win32)」 でも使えるとの…

独習デザインパターン C++

独習デザインパターン C++作者: 株式会社テクノロジック・アート,長瀬嘉秀出版社/メーカー: 翔泳社発売日: 2008/10/22メディア: 大型本購入: 5人 クリック: 24回この商品を含むブログ (13件) を見るなんとなく今さら感もあるけど、デザインパターンも半分く…

C++ 系書籍

Boost、More Exceptional C++@予定は未定Blog版より。 買わねば。。。Boost C++をチューンアップする最先端ライブラリ作者: ビョルン・カールソン,村上雅章出版社/メーカー: ピアソンエデュケーション発売日: 2008/10/07メディア: 単行本(ソフトカバー)購…

演算子のオーバーロードあれこれ

演算子のオーバーロードで気づいた点、注意点を備忘録的に列挙。 全体的 引数の名前は lhs と rhs(left (right) hand side / 左(右)辺値)を使う。 #この名前がどこまで一般的なのかは知らない。 代入演算子 1, 宣言 代入演算子の宣言は以下とする。 クラ…

デフォルト引数とコンストラクタ

今までなんとなくで通してたこと。 class A { public: A( int a = 0 ){} void put(){} }; void main() { // A a(); // NG // a.put(); A b( 1 ); // OK b.put(); A c = A(); // OK c.put(); } デフォルト引数のデフォルトコンストラクタでインスタンスを生成…

NULL と 0

C++ でプログラムを書くときにポインタの初期化は NULL ではなく、0 でおこなっている。 C 言語と C++ で NULL の定義が違うのと*1、どこかで(ソース不明) 0 のほうがいいよ、と見た気がするから。 なんだけど、どうも調べてみるとそうでもなくて、NULL が 0…

インクリメント・デクリメント

確か More Effective C++ に書いてあった、前置インクリメント(デクリメント)と後置インクリメント(デクリメント)の違い。 意外と気にしないものなんだろうか。 細かい話なので、気にしなくてもいいのかもしれないけど。 C++ のいいところは、C言語では…

CppUnit-x ではじめる、簡単ユニットテスト−その7 Subversion との連携 パート2

eXtreme Programmingテスト技法―xUnitではじめる実践XPプログラミング (OOP foundations)作者: 日本XPユーザグループ,長瀬嘉秀出版社/メーカー: 翔泳社発売日: 2001/11メディア: 単行本 クリック: 20回この商品を含むブログ (14件) を見るこの本の写経シリー…

設計者自らが書き下ろす「C++入門書」とは〜Bjarne Stroustrup氏との対話〜

設計者自らが書き下ろす「C++入門書」とは〜Bjarne Stroustrup氏との対話〜@CodeZine CodeZine の連載2回目。 氏が今まさに執筆中の C++ 入門書について語っている。 C++ とか C 言語の入門書って選定が意外と難しいんだけど、この本の評価によっては探し…

CppUnit-x ではじめる、簡単ユニットテスト−その4 makefile の作成

eXtreme Programmingテスト技法―xUnitではじめる実践XPプログラミング (OOP foundations)作者: 日本XPユーザグループ,長瀬嘉秀出版社/メーカー: 翔泳社発売日: 2001/11メディア: 単行本 クリック: 20回この商品を含むブログ (14件) を見るこの本の写経シリー…

CppUnit-x ではじめる、簡単ユニットテスト−その5 makefile の自動生成

eXtreme Programmingテスト技法―xUnitではじめる実践XPプログラミング (OOP foundations)作者: 日本XPユーザグループ,長瀬嘉秀出版社/メーカー: 翔泳社発売日: 2001/11メディア: 単行本 クリック: 20回この商品を含むブログ (14件) を見るこの本の写経シリー…

CppUnit-x ではじめる、簡単ユニットテスト−その6 Subversion との連携

eXtreme Programmingテスト技法―xUnitではじめる実践XPプログラミング (OOP foundations)作者: 日本XPユーザグループ,長瀬嘉秀出版社/メーカー: 翔泳社発売日: 2001/11メディア: 単行本 クリック: 20回この商品を含むブログ (14件) を見るこの本の写経シリー…

CppUnit-x ではじめる、簡単ユニットテスト−その3 テストを自動化してみる

eXtreme Programmingテスト技法―xUnitではじめる実践XPプログラミング (OOP foundations)作者: 日本XPユーザグループ,長瀬嘉秀出版社/メーカー: 翔泳社発売日: 2001/11メディア: 単行本 クリック: 20回この商品を含むブログ (14件) を見る写経シリーズ 第3…

CppUnit-x ではじめる、簡単ユニットテスト−その2 複数のテストをしてみる

eXtreme Programmingテスト技法―xUnitではじめる実践XPプログラミング (OOP foundations)作者: 日本XPユーザグループ,長瀬嘉秀出版社/メーカー: 翔泳社発売日: 2001/11メディア: 単行本 クリック: 20回この商品を含むブログ (14件) を見る写経シリーズ 第2…

CppUnit-x ではじめる、簡単ユニットテスト−その1 テストをしてみる

eXtreme Programmingテスト技法―xUnitではじめる実践XPプログラミング (OOP foundations)作者: 日本XPユーザグループ,長瀬嘉秀出版社/メーカー: 翔泳社発売日: 2001/11メディア: 単行本 クリック: 20回この商品を含むブログ (14件) を見る写経シリーズ 第1…

読中・eXtreme Programmingテスト技法

eXtreme Programmingテスト技法―xUnitではじめる実践XPプログラミング (OOP foundations)作者: 日本XPユーザグループ,長瀬嘉秀出版社/メーカー: 翔泳社発売日: 2001/11メディア: 単行本 クリック: 20回この商品を含むブログ (14件) を見る読むといっておきな…

Bjarne Stroustrup氏との対話

あなたはC++の発明者? それとも創造者?〜Bjarne Stroustrup氏との対話〜@CodeZine 自分のことを C++ の設計者であり、最初の実装者と呼ぶのがカッコイイ! なんというか自信に満ち溢れて、それでいて嫌味がないそういう方なイメージを受けた。 記事より引…

Google Test

@IT の Protocol Buffers の記事から見つけた googletest(Google C++ Testing Framework)。 とりあえずダウンロードしてみたけどややこしい^^; ユニットテストフレームワークって慣れてる人には使いやすいのかもしれないけど、素人にはどこから手をつけて…

eGUI++

Windows フォーム アプリケーションの簡潔さをネイティブ アプリケーションで実現する@MSDN 面白そうなのが出てきたね:) インストール方法とサンプルの動作方法はここを参考にした。 Visual Studio への統合が上手く出来ないけど、出来たら楽しそうね:) MFC…

SQLite 使用編

SQLite のラッパークラスを最小限実装したので、SQLの勉強がてら実際に使用してみる。 いろいろなサイトを見ていると、郵便番号データを使っているところが多いのでこれで試すことに。 住所を選択すると郵便番号を取得できるものとその逆。 最初の一歩として…

SQLite まずはちょいと改造

先日作ったやつからちょいと改造使用例はこんなカンジ。 ・SQL文の生成にステートメントではなくて、printf 式構文に変更した ・プロジェクトはこちらに #毎度のことですが、ご使用は自己責任で☆

SQLite 例外クラス

手始めに例外クラスを作成。 SQLiteのライブラリ使ってる過程でエラーが出たら片っ端から例外なげます。 クラス作成の時はいつもここ*1から始めるくらい、例外大好き(笑) #毎度のことですが、ご使用は自己責任で☆ *1:例外クラス作成

SQLite データベースクラス

お次はメインのデータベースクラス。 SQLは知識ゼロなので、open/close/exec のみ実装^^; #毎度のことですが、ご使用は自己責任で☆

SQLite SQL文作成クラス

最後に SQL文を printf 形式でフォーマットする sqlite3_vmprintf() のラッパクラス #しつこいですが、ご使用は自己責任で^^;

教えてみて思ったこと

昨日から C++ の研修を始めて、今日の午前中までは Better-C をやって、午後から C++ 本番を始めた。 教えてみて改めて思ったのが C++ ってやっぱり複雑なんだなぁと。 「クラスの基本」から始まったけど、クラスって変数やら構造体やら関数やらの知識がないと…

引数の評価順序

すっかり忘れてて小一時間ハマった。。。 char* p[] = { 文字列たち }; printf( "%s, %s", *p++, *p++ ); どうしても前と後ろが逆になると思ったら、_cdeclで呼び出す関数の評価は後ろ(右)からだった。。。

DLL内の関数名を取得

おもしろかったなりよ@東方算程譚 こいつをこの時間に1時間ほど見てしまった^^; WinUnit は DLL から直接関数名を取得している、とのことで忘れないうちにやってみた。

SQLite

ちょいとSQLやりたくなったので、これ見ながらC++でやってみる☆ SQLiteで組み込みDB体験 SQLiteで組み込みDB体験(2007年版) SQLiteで組み込みDB体験(2008年版)@よしなごと

かんたん単体テスト

たった二行でUnitTest : PicoUnit:東方算程譚 コンソールアプリ限定だけど、なんも考えずに単体テストができてしまう!! GUIが絡まなければ単体テストはコンソールで十分なので使いどころは多々ありそう。 #include <stdio.h> #define pico(EXP) ( !!(EXP) || (prin</stdio.h>…

CSV解析

ちょいと入用でCSV解析のコードを書いてみた。 STLとBoostで完全C++コードになりましたとサ。 #使用は自己責任で

発掘 volatile メンバ関数

昨日自分のデスクトップPCを漁ってたら、昔作ったテストプログラムが出てきたので載せてみる。 一風変わったサンプルになってると思います。

契約による設計

プログラムを安全性を高める手法の一つに契約による設計(Design By Contract)というものがある。