2010/10/12
■ [felica] felicalib を cygwin から使う
去年くらいにpasori を使って fcf フォーマットから ID,氏名を抽出するというエントリを書きましたが,最近 felicalib を使って IC カードに情報の書き込みをする必要が出てきたので,felicalib を cygwin から使う方法についてまとめておきます.
まず felicalibには felicalib.dll を cygwin からも利用できるように変換します.felicalib に同封されている felicalib.dll, felicalib.lib を同じディレクトリに置いておきます.
% ls felicalib.h dump.c felicalib.dll felicalib.lib
そして dlltool を使って cgywin と互換性のあるインポートライブラリを作成します.
% echo EXPORTS > cygfelicalib.def % nm felicalib.lib | grep ' T _' | sed 's/.* T _//' >> cygfelicalib.def % dlltool --def cygfelicalib.def --dllname felicalib.dll --output-lib cygfelicalib.dll
これで cygwin と互換性のあるインポートライブラリ cygfelicalib.dll ができました.次に felicalib に同封されていた dump.c (カードの情報を dump するだけのコード)を試しにコンパイル,実行してみます.
% gcc-3 -mno-cygwin ./dump.c -o dump.exe -L. -lcygfelicalib % ./dump.exe # IDm: XX XX XX XX XX XX XX XX # PMm: XX XX XX XX XX XX XX XX # System code: XXXX # Number of area = 9 # Area: XXXX - XXXX # Area: XXXX - XXXX # Area: XXXX - XXXX # Area: XXXX - XXXX # Area: XXXX - XXXX # Area: XXXX - XXXX # Area: XXXX - XXXX # Area: XXXX - XXXX # Area: XXXX - XXXX # Number of service code = 33 ...
ということで,うまく動いたぽいです.
関連リンク