プログラミング( 2 )

Category
メモリ上のデータからNSImageオブジェクトを作成する
CocoaFrameworkのNSImageオブジェクトをメモリ上の画像ファイルデータから作成する方法についてのメモ書きです。 これが出来るようになると、例えば汎用ストリームから画像データを読み込む処理も実現できるようになります。 サポートしている画像ファイルの形式はBMPやPNG、JPEGなどです。 画像データは既に...
772 PV
Macにboostをインストールする(ソースからビルド)
前回のこちらの記事でMacPortsを使ってboostをインストールする方法を紹介しました。 今回はboostのソースを一からビルドしてMacにインストールする方法について書き記したいと思います。 ■インストール 以下サイトにアクセスし、boostのソースをダウンロードします。  http://www.boost.or...
1291 PV
Macにboostをインストールする(MacPortsを使う)
MacでC++向けライブラリのboostを使えるようにするための手順についてのメモ書きです。 ■インストール boostのインストール方法には以下の二通りあります。  ・ソースファイルをダウンロードしてビルドする  ・MacPortsを使う 結論から言うと、2つ目のMacPortsを使ってインストールしたほうが劇的に楽...
784 PV
スマートポインタのキャスト
boost::shared_ptrのキャストについてのメモ書きです。 ■アップキャスト これは暗黙の型変換で行えます。 [crayon-5ed52564ecf6a926860815/] [crayon-5ed52564ecf83590168508/] ■static_cast shared_ptrをstatic_cas...
1929 PV
COMオブジェクトでスマートポインタを使う
COMオブジェクトをスマートポインタで管理する方法のメモ書きです。 boost::shared_ptrはnew/deleteでインスタンス生成・開放するオブジェクトに対して使えますが、 COMオブジェクトのようにReleaseでオブジェクトを開放するものに対しては使えません。 そこで、boost::intrusive_...
929 PV
VisualStudioのビルドでLNK4042が発生してしまう問題
VisualStudioのビルドで嵌ったことについてのメモです。 VS2013を使っていて、同じ名前のソースファイルが無いにもかかわらず以下のエラーが表示されてしまうことがあります。  1>DebugSource.obj : warning LNK4042: オブジェクトの指定が重複しています。余分なものは無視されます...
1978 PV
クライアント領域でウィンドウサイズを変更する
WinAPIでウィンドウをクライアント領域の矩形でウィンドウの位置とサイズを変更する方法についてのメモです。 ウィンドウの位置とサイズはSetWindowPos()関数で変更します。 [crayon-5ed52564ed81a857112739/] しかし、この関数で指定する位置とサイズはウィンドウの外側のサイズです。...
1873 PV
Windows ACMでPCMをリサンプリングする
WindowsアプリケーションからPCMデータをリサンプリングする方法についてのメモ書きです。 リサンプリング処理はプログラマが直に書いても良いですが、出来れば楽したいのでAPIを用いて実現できないかどうかと考えていました。 結果、ACMを用いれば実現できることが分かりました。 ACM自体はMP3データのデコードでも使...
1117 PV
WAVEファイルの作成
前回の記事の続きです。 アプリケーション上で保持しているPCMデータをWAVEファイルとして保存するプログラムについての解説です。 WAVEファイルの構造につきましてはこちらをご覧ください。 WAVEファイルはRIFF形式で保存され、フォーマットチャンクとデータチャンクが最低限必要になります。 まず、RIFFチャンクの...
1082 PV