過去に私が書いたこちらの記事を少し整理しました。 今回はACMを用いたMP3ストリーミング再生についての説明です。 ACMとはAudio Compression Managerの略で、いわばWindowsで管理されたコーデックをアプリケーションから使用できるようにしたものです。 このACMを用いることで、たとえばアプリ...
プログラミング( 4 )
Category
ゲーム中でBGMを再生したいとき、MP3やOggVorbisファイルなどの巨大なサイズのファイルを再生する必要が出てくるかもしれません。 これらのファイルをすべてメモリ上にデコードして展開してから再生することも最近のPCなら苦にならないかもしれません。 しかし、メモリを数10MB消費したり、デコード処理で一旦フリーズし...
VisualStudio2013でXMLを操作するためのライブラリXerces-C++を使える様にするための手順のメモです。 1.Xerces-C++のダウンロード 以下サイトよりWindows用のバイナリをダウンロードします。 http://xerces.apache.org/xerces-c/download.cg...
配布ゲームの画像や音楽データの暗号化をしたいと思うようになり、 暗号化ライブラリであるCrypto++を導入してみました。 ■インストール手順 1.ダウンロード 以下サイトにアクセスします。 http://sourceforge.jp/projects/sfnet_cryptopp/ Windowsの cryptopp...
C#においてforeach文とfor文で添え字アクセスする方法のどちらを用いたほうがパフォーマンスが上がるのかについて気になっていました。 普段良く使う配列(Arrayクラス)とListクラスについて、foreach文とfor文によるシーケンシャルアクセスの速度を検証してみました。 今回用いたプログラムは以下の通りです...
C#のアプリ開発で嵌ったメモ書きです。 C#でフォームのコントロールを扱うとき、同一スレッドからアクセスする必要があります。 たとえば、以下のようにDataGridViewに別スレッドからアクセスすることを考えて見ます。 public partial class Form1 : Form { Task task; ob...
C#ではスレッドやタスクを簡単に扱えるようになっています。 また、ガベージコレクタが走っており、不要なメモリ資源の回収も簡単に行えます。 しかし、これらの便利な機能があるが故に落とし穴も存在します。 例えば、以下のコードはメソッドの中でスレッドプールからタイマーを生成して実行する例です。 class Program {...
C#のforeach文は配列をはじめ、列挙子やリストなどのさまざまなシーケンシャルな反復処理を簡潔に書くことができます。 foreach (ElementType element in collection) { statement; } このforeach文はコンパイル時に以下のようなコードに展開されます。 E en...
プログラミングのネタ的なメモ書きです。 C#のdelegateの便利さを知ってから、これをC++でも出来ないかと思う様になりました。 特にマルチキャストは様々な場面で使える便利な機能です。 今回は、マルチキャストができるC++の簡易的なdelegateを実装してみました。 ■ソースコード #include #inclu...