プログラミング( 4 )

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