読者です 読者をやめる 読者になる 読者になる

酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

フリーの静的コード解析ツール「Splint」について

弊社では静的コード解析ツールを使っていません、というよりも環境が少し特殊でして解析ツール自体がありません*1。毎回クライアントに静的解析をお願いして解析結果を頂いています。逆にクライアントから任意のタイミングで解析結果をまとめたエクセルシー…

単体試験書を<del>でっちあg</del>自動生成する方法

もう彼是1年位前の話です。 3ヶ月間のプロジェクトで3ヶ月目の時期でソフトが動作すらしていない事がありました。火消しの為に呼ばれたものの、バージョン管理をしていないので皆バラバラの環境を使ってるわ。正直何をして良いのか判らない状態でした。メン…

なんとエラーメッセージが取得出来た

WIN32APIで処理に失敗した後にGetLastError()を使いなさいとは、リファレンスに書かれていたので知っていたのですが、数字(ID)だけ見ても何もわかんねーYO!!と思っていました。今日たまたま知ったのですが、GetLastError()で取得したIDからエラーメッセージ…

32bit CPUでは、64bitの演算がどのようにおこなわれているか調べてみた

C99でlong long int型が予約語に増えました。32bitCPUではこのlong long intの演算をどのように扱っているのか考えてみたくなりました。 考えるもなにもVCの混合モードでアセンブラをみたら解決しました。 void oppai(void) { unsigned long long int hogeho…

embUnitには河童の血が流れていた件について

embUnitはCUnitの改造版でC言語の標準関数を使わずに、128kほどのスタック領域と4kほどのROM領域が確保出来れば使用できる*1組み込みソフト用テストフレームワークです。今日は予定していた仕事が来ず手が空いたのでembUnitを試してみました。 static void t…

C/C++からPerlを使ってみよう

MFCからPerlスクリプトをコールしてみたくなったので関連記事を探してみました。 [C/C++][Perl] C プログラムから Perl コードを実行する - Open MagicVox.net 上記のサイトを参考に適当なスクリプトを作ってみました。2つの引数を表示するんで"print_arg.pl…

CUnit for Mr.Andoでテストフレームワークを試してみよう

「cunit 使い方」で検索してうちのブログ来てくださる方がいます。全く大したことが無く申し訳ないので、ちょっと追記程度に書いてみました。*1 『CUnit for Mr.Ando』リリースファイル・リストから"CUnitForAndo.tar.gz"をダウンロードして、任意のフォルダ…

Windowsユーザーが超お手軽に「boost」をインストールする

今更と言われるかもしれませんが、正規表現を使いたかったのでboostを導入してみました。完全にwindowsユーザー限定のエントリとなりますが、超お手軽にboostをインストールする方法を知ったのでご紹介します。これからboostを使う方の参考になればなにより…

動画データ解析ツールを作成する(5) - QuickTime SDKを使って動画ファイルのDimensionを取得する

今まで紹介したQuickTime APIを使用して、動画ファイルのDimension(Videoの表示サイズ)を取得するためのサンプルコードは、下記のとおりになります。出来る限りエラー処理を省いて、短く書いたつもりなのですが長くなってしまった・・・ #include <stdio.h> #include <QTML.h> #i</qtml.h></stdio.h>…

動画データ解析ツールを作成する(4) - トラック情報を取得するAPIを調べる

例に従って和訳が適当なので、まともな技術者の方は「Page Not Found - Apple Developer」をお読みください。 /*! Movieに含まれるトラック数を取得する @param[in] theMovie Movie識別子 @return トラック数 */ long GetMovieTrackCount ( Movie theMovie )…

動画データ解析ツールを作成する(3) - QuickTime SDKを使ってトラック情報から動画サイズを取得する

QuickTime SDKを使ってメタ情報を取り出すのはツライ・・・残念ながらプログラミングセンスのない僕には難しいよ。QuickTime SDKの使用はあきらめましたが、トラック情報から動画のサイズを取り出すところまでは実装出来たので、備忘録を兼ねて使用したAPIの説…

動画データ解析ツールを作成する(2) - QuickTime SDKの初期化をおこなう

QuickTime SDKを扱うにあたって、まずQuickTimeの初期化が必要になります。 Movieを扱う為には、下記の2つの関数を使って、QuickTimeを初期化してください。 /*! QuickTime Media Layerの初期化を行います。 @param[in] flag 初期化オプション @return 成功…

動画データ解析ツールを作成する(1) - 3GPP2のフォーマットの資料を探す

動画解析ツールを作ってみたくなったので考えてみました。最終的には誰にでも簡単に使えるようにGUIでの提供を考えていますが、とりあえずはCUIで動くものを作る予定です。 対応させるフォーマットは? 3GPP2、H.264 フォーマット解析はどのように行うのか?…

YCbCr422形式の画像を回転させてみた

YCbCr422ってなんやねん?という方は、他のサイトやブログを見て頂いた方が適切な回答を得られると思いますので、探してみてやってください。まぁ、デジタルスチールカメラ等でよく使われる画像フォーマットの一つみたいです。実装は意外と簡単に済んだんだ…

PSPでHOMEキー押下に対応させる

まともに説明書きがある所がなかったので試行錯誤を繰り返しているのですが、なかなか成功しません。HOMEキーを押下で中断画面が出て「このままお待ちください」と、いう画面でフリーズしているようです。ネットで見つけたソースと同じ様にしているはずなの…

PSPで矩形出ました

STGを作りたいけど矩形描画で悩んでいる段階ではたして出来るのかどうか・・・標準関数を使えないという時点で私的にはもうどうして良いのか分からないです。 矩形描画の為のソースは今の所こんな感じです。結構無駄な処理をしてそうですね、もっと高速化出…

PSPで透過色を透過出来る様になりました。

helloPSPのソースをいじりながらPSPプログラミングを勉強中です。pgBitBlt()少し改造してみました。上記の画像の作成には、ぶーにゃんの部屋のPNG<>PSP画像形式のC変換ツールを使わせて頂きました。Windows付属のペイントとこのツールだけでPSPですぐ使える…

.dllを作ろう!

かくかくしかじかと言うことでDynamic Link Libraryです。とある謎ツール(正式名称)を作る事になりました。その為にはdllを作らねばならず作り方勉強も兼ねて一通り調べてみました。この間まで.h(ヘッダファイル)の作り方が難しいと思って避けていたけれ…

ファイル出力と構造体

(2011/12/24 追記) 旧ブログから記事を移行しています。あまり難しい問題ではありませんでした。これで構造体にポインタを使っていたらC言語初心者卒業できていたのかしら・・・しかしながらなんとなくファイルの入出力は見えてきましたね。猿でも覚えれる反復…

怪しいパック10進数の作り方

(2011/12/24 追記) 旧ブログから記事を移行しています。バイナリファイルへの出力は2進数でするべきものだと思っていたがどうやら16進数で出力しなければならないようだ(多分)よって、出力する直前で16進数へ変更してやる必要がある。思いついた方法は全部…

新しい課題

(2011/12/24 追記) 旧ブログから記事を移行しています。さてSMTPを使ったメーラを作る予定でしたが、お前にはネットワーク関連は難しすぎたやろうって事で新しいお題をいただきました。 コマンドラインからtxtファイルを引数としてもってくる txtファイルの…

怪しいパック10進数の作り方

(2011/12/24 追記) 旧ブログから記事を移行しています。一応、パック10進数のような配列(下4ビットが1符号ビット)を作るのには成功しました。しかし、本当にこんな作り方でよいのか不安でなりませんが・・・ //パック10進数の作り方 for ( i = 15; i > 0;i--)…

ネットワークプログラム指南 その2 アルゴリズム

(2011/12/24 追記) 旧ブログから記事を移行しています。ネットワークプログラムの中の人の動きが知りたくて試しでキーパンチしていたプログラムがあったのですが、そいつでどーんとハマってしまい当初言われていたプログラムまで触れていません。私の先生(…

ネットワークプログラミング指南 その3 定石

(2011/12/24 追記) 旧ブログから記事を移行しています。C言語を始めてまだ1ヶ月もたたない人間がネットワークプログラムを極めようとするこの一見無茶な試みがどうして成功するのであろうか(いや、しない)ってことで、Winsock2を使ったプログラミングの定…

ストリーム・ソケット

(2011/12/24 追記) 旧ブログから記事を移行しています。帰るまで電車の中で本を開けないので、まず接続されるまでの順序を書こう。まずはsocket関数を使用してソケットを開いて、bind関数でソケット名を決める。そのあとサーバ側でlisten関数からクライアン…

構造体の宣言と参照、構造体配列

(2011/12/24 追記) 旧ブログから記事を移行しています。 構造体とは 異なる型のデータをひとかたまりのデータ型として扱う為のもの。 各データの要素が同じ型なら配列でも代用できますが、要素の型が異なる時には構造体が便利。 構造体の宣言 例えば、社員(…

C言語、覚え書き その1

(2011/12/24 追記) 旧ブログから記事を移行しています。 メモ1 文字列データをキーボードからscanfで入力する為に実体のある配列を用意しましょう。ポインタ型にしてしまうと、scanfでの入力にメモリ割り当てされていない領域に格納が行われて、暴走の原因…