• ベストアンサー

Felica Libの使用方法

Felica Libの質問なんですが、VC++2010でIDmを読み取るプロジェクトをつくらなければならなくなりました。 wikiを見てもオープン処理・初期化しかできませんでした。 そうやったらIDmだけを読み取れるかよろしくお願いします。 常時、読み取り状態にして、カードをおいたらなんの操作もなく(読み取りボタンなども押さなく)エディットボックスにIDmを表示したいです。 自分の考えではセットタイマーを使ってやろうと思いましたが分からなく途方にくれています。 ではよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>wikiを見てもオープン処理・初期化しかできませんでした。 とりあえず……FelicaLibのサンプルソースを参照すれば、シーケンシャルに処理はできるかと思われますが…。 felicalib-0.4.2.zipにはEdyとかの読み込みサンプルありますよね? >自分の考えではセットタイマーを使ってやろうと思いましたが分からなく途方にくれています。 SetTimer()ですかね? そんなに精度は高くないですよ? # まぁ、たかがFelicaカードのアクセス(しかもライブラリ任せ)でそんな精度も要らんでしょうが…。 src\dump\dump.cを参考にするとして…… pasori_open()とpasori_init()はウィンドウ作成時に1回実施すれば良いでしょう。 pasori_open()で得られるポインタは保持しておく必要がありますが。 タイマーで呼び出される中でfelica_polling()して、読み込みに成功したらIDmを参照。 ってところですかね。 ウィンドウを閉じるときにfelica_free()やpasori_close()で後始末…ってところでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • FeliCaを利用した認証システム

    FeliCaを使用した認証システムを開発しています。 認証方法 (1)PCに個人情報(IDm、名前)の登録を行う。この際、テキストファイル名をIDm(例 01 02 03 05.txt)としファイル内に名前を書き込む。 (2)リーダー/ライターにFeliCaをかざし、IDmを読み取る。 (3)ファイル内の情報を出力させる。 CUIでは、動くのですがGUIで動かすにはどこを替えればいいのでしょうか? 認証というボタン押すと登録された名前を出力させる感じです。 以下にCUIのコードを載せます。 // sample.cpp -*-c++-*- #include <cstdio> #include <cstdlib> #include "felica.h" int main(void); void error_routine(void); void print_vector(char* title, unsigned char* vector, int length); int main(void) { char file[28]; char kawa[6]=".txt"; int i; FILE *fp; int ninzu = 0; char name[100]; //ライブラリの初期化 if (!initialize_library()) { fprintf(stderr, "Can't initialize library.\n"); return EXIT_FAILURE; } //リーダ;ライタの自動認識とオープン if (!open_reader_writer_auto()) { fprintf(stderr, "Can't open reader writer.\n"); return EXIT_FAILURE; } //ポーリングのための宣言 structure_polling polling; unsigned char system_code[2] = {0x00, 0x00}; polling.system_code = system_code; polling.time_slot = 0x00; unsigned char number_of_cards = 0; structure_card_information card_information; unsigned char card_idm[8]; card_information.card_idm = card_idm; //ポーリングとカード情報の取得 if (!polling_and_get_card_information(&polling, &number_of_cards, &card_information)) { fprintf(stderr, "Can't find FeliCa.\n"); return EXIT_FAILURE; } fprintf(stdout, "number of cards: %d\n", number_of_cards); print_vector("card IDm:", card_idm, sizeof(card_idm)); //card_idmをfileに書き込む sprintf(file,"%02x %02x %02x %02x %02x %02x %02x %02x",card_idm[0],card_idm[1],card_idm[2],card_idm[3],card_idm[4],card_idm[5],card_idm[6],card_idm[7]); for(i=23;i<28;i++) file[i]=kawa[i-23]; printf("%s\n",file); if((fp=fopen(file,"r"))==NULL) printf("情報が登録されていません\n"); else{ while(fscanf(fp,"%s",name)==1){ printf("%-10s\n",name); ninzu++; } fclose(fp); } //リーダ。ライタのクローズ if (!close_reader_writer()) { fprintf(stderr, "Can't close reader writer.\n"); return EXIT_FAILURE; } //リーダ。ライタを開放する if (!dispose_library()) { fprintf(stderr, "Can't dispose library.\n"); return EXIT_FAILURE; } return EXIT_SUCCESS; } void error_routine(void) { enumernation_felica_error_type felica_error_type; enumernation_rw_error_type rw_error_type; get_last_error_types(&felica_error_type, &rw_error_type); printf("felica_error_type: %d\n", felica_error_type); printf("rw_error_type: %d\n", rw_error_type); close_reader_writer(); dispose_library(); } void print_vector(char* title, unsigned char* vector, int length) { if (title != NULL) { fprintf(stdout, "%s ", title); } int i; for (i = 0; i < length - 1; i++) { fprintf(stdout, "%02x ", vector[i]); } fprintf(stdout, "%02x", vector[length - 1]); fprintf(stdout, "\n"); } どなたかご教授よろしくお願いします。

  • 'msimg32.lib'は通常どこにあるんですか?

    質問はタイトルどおりで msimg32.libが通常どこにあるのか教えてください。 今、http://qtnode.net/wiki/Qt4_with_Visual_Studioを参考にしながら QT4.2.3をVisual C++ 2005 Express Editionで動かすために インストールしているのですが、nmakeが約一時間走った後で LINK : fatal error LNK1181: cannot open input file 'msimg32.lib' NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\l ink.EXE"' : return code '0x49d' Stop. NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\n make.EXE"' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. というエラーが出て止まってしまいました。 msimg32.libに何か問題がありそうなんですが場所すら分かりません。 環境はWindowsXPです。 ちなみにPlatform SDKはもうインストール済みで正常に機能します。

  • MFC:リッチエディットからUnicode文字列を受け取りたい

    MFCのダイアログベースでプロジェクトを作成 ↓ プロジェクトのプロパティで「マルチバイト文字セットを使用する」を「Unicode文字セットを使用する」に変更 ↓ エディットボックスとリッチエディット2.0を適当に配置 ↓ エディットボックスとリッチエディット2.0それぞれにコントロール変数を追加 ↓ InitInstance()内に AfxInitRichEdit2(); を追加 ↓ あとは適当なところでエディットボックスとリッチエディット2.0それぞれにGetWindowText関数を使って、記入内容を取得します。     すると、エディットボックスではUnicodeの文字を入れても文字化けしないのに対し、リッチエディット2.0では文字化けしてしまいます。 例えば“Å”の半角文字を(Unicode紹介サイトからコピペする等して)入力すると、エディットボックスではそのまま“Å”なのに、リッチエディット2.0では“A”になります。   ※入力している段階では“Å”と表示されています。GetWindowText関数で取得すると“A”になってしまいます。     リッチエディット2.0からUnicode文字を正常に受け取れる方法はありませんでしょうか。

  • 別スレッドからメインダイアログのコントロールにアクセスする方法

    VC++2005 MFC WindowsXPを使用しています。 メインダイアログに作成したエディットボックスに フォーカスをセットしたいのですが、 別スレッドから行うにはどのようにすればよいのでしょうか? メインダイアログにあるボタンを押すと別スレッドの処理に入り、 その中でメインダイアログのコントロールを操作しようとしています。 //フォーカスをセット CWnd* MyEdit = ( CWnd* )this->GetDlgItem( IDC_EDIT1 ); MyEdit->SetFocus(); 宜しくお願い致します。

  • スピンボタンの制御

    VCにて、ダイアログにエディットボックスとスピンボタンのセットを複数配置したプログラムを作成しているのですが、スピンボタンの単位を-1.0~1.0と0.1刻みとしたいので、設定範囲を-10~10としOnVScroll()にて1/10して対応するエディットボックスに表示しようと試行錯誤中ですが、どのスピンボタンが押下されたか判断する知識ありません。コントロール識別子(nID)が判れば編集して、対応するエディットボックスにSetDlgItemTextで設定できるのですが、OnVScroll()の引数からnIDの取得方法を教えていただけないでしょうか。

  • リストビューのスクロールについて

    VC.NET MFC でリストビュー(CListCtrl)を使用しています。 そのリストビューにある垂直スクロールバーを操作しても、 PreTranslateMessage()になにもコマンドが送られてきません。 ・・・(1) また、LVN_BEGINSCROLLのハンドラを追加してみたんですが、 コンパイル時にLVN_BEGINSCROLLを認識してもらえません。 (コンパイルエラー) ・・・(2) いろいろ調べてcommctrl.hをインクルードしても 必要なDLL(Comctl32.lib ? Comclt32.lib)をプロジェクトに参加させても認識してもらえませんでした。 リストビューのスクロールバー操作時の処理をオーバーロードしたいのですが、できなくて困っています。 どのようにすればよろしいでしょうか? 助言のほどよろしくお願いします。

  • エディットボックス

    VC++、APIでwindowsプログラムを書いています。ダイアログボックスで質問があります。 case WM_INITDIALOG: SetDlgItemText(hDlg, IDC_EDIT1, "0"); return TRUE; で読み取り専用エディットボックス内に初期値を書き case WM_CTLCOLORSTATIC: { HDC hdc = (HDC)wParam ; SetTextColor( hdc, RGB( 255, 255, 255)) ;// 白色 SetBkMode(hdc, TRANSPARENT); // 背景を透過 return (BOOL)(HBRUSH)GetStockObject(NULL_BRUSH) ; } でダイアログボックス内のスタティックテキストと読み取り専用エディットボックスの背景を同時に透過させているのですが、エディットボックス内の文字を void ddd( HWND hDlg, int xxx) { char ttt[100]; sprintf(ttt,"%d",xxx); SetDlgItemText(hDlg, IDC_EDIT1, ttt); return ; } で書き換えると古いテキストが残ったように表示されます(背景に色を指定すれば古いテキストは残らない)。 うまく表示させるにはどういった方法があるでしょうか? ご存知の方、よろしくお願いします。 ちなみにダイアログボックスにはビットマップが貼ってあります。

  • SQLEXPRESSにてコマンドプロンプトからインストール時のSAPWDについて

    WindowsVistaのコマンドプロンプトからSQLEXPRESSをインストールしようと考えてるのですが、認証モードダイアログでのパスワードエディットボックスに 指定したパスワードが初期値としてセットされません。 どのようにしたら初期値としてセットされるのでしょうか? N:\SQLEXPRESS\setup.exe INSTANCENAME=INSTANCE01 ADDLOCAL=SQL_Engine SECURITYMODE=SQL SAPWD=SAPWD001 で、行っています。 同様の内容で.iniファイルでの実行も行いましたがSAPWDのみ反映されませんでした。 ご存知の方がおられましたらご教授お願いします。

  • MSDNサイトの解説説明に疑問(Visual C#2008)

    Visual C#2008を使用しています。 他に質問コーナーが見当たらないので、VC#2008の件ですがここに(C,C++の質問サイト)質問致しました。 質問ですが、VisualC#関連のMSDNサイトの解説記事はVC#2008には対応していない(古い?)ものなのでしょうか? たとえば下記ページの説明です。 http://msdn.microsoft.com/ja-jp/library/a6h7e207.aspx 「チュートリアル : Visual C# による複合コントロールの作成」とい う内容で「プロジェクトの作成」「ctlClockLib コントロール ライブラリおよび ctlClock コントロールを作成するには」 という親切な手順での解説があります。 しかし、このとおりに進めても作成できません。 書いてある「メニュー項目」などが実際と異なっているからです。 上記ページだけではなく、Visual C#に関する他のページもVC#2008には対応していないです。 具体的には、最初の1. 2.の説明でさえも、[MSDNの説明]のようになっていないのです。 [MSDNの説明] 1. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックして [新しいプロジェクト] ダイアログ ボックスを開きます。 実際は次のようになります。 [ファイル] メニューの [新らしいプロジェクト] をポイントし、表示されたテンプレートの[Windowsフォームアプリケーション]をクリックしVC#2008の開発IDE画面を開きます。 [MSDNの説明] 2. Visual C# プロジェクトの一覧の [Windows コントロール ライブラリ] プロジェクト テンプレートをクリックし、[プロジェクト名] ボックスに「ctlClockLib」と入力して、[OK] をクリックします。 実際は次のようになります。 VC#2008の開発IDE画面のメニュー[プロジェクト]の[ユーザーコントロールの追加]をクリックして表示されたテンプレートから[ユーザーコントロール]をクリックし[ファイル名]ボックスに「ctlClockLib」と入力して、[OK] をクリックします。 ----- [MSDNの説明]は具体的ですので単純なミスがあるとも思えないのです。 VC#2008となぜ操作方法などが異なるのか、またはVC#2008のMSDN説明サイトはここにあるよ、というアドバイスがありましたら教えてください。 よろしくお願いします。

  • VC++にてファイル入出力サンプルアプリの作り方

    はじめまして。 VC++2005にてMFCを使用してサンプルアプリを作ることになりました。 あるフォルダを選択して、その配下のファイルをリストで出力。そのうち選択したファイル(txt)を読み込んで、その内容を出力させる。 という機能です。 ポイントは (1)入力したフォルダパス配下のファイルをリストボックスに列挙する。 (2)リストボックスで選択したファイルの内容をエディットボックスに表示する。 ┌――――――――――――――――――――――――┐ └――――――――――――――――――――――――┘ |┌―――┐┌―――┐ ||パ ス ||ボタン | |└―――┘└―――┘ |┌―――――――――┐ ||リストボックスリストボ | ||ックスリストボックスリ |┌―――┐ ||ストボックスリストボッ ||ボタン | |└―――――――――┘└―――┘ |┌――――――――――――――――――┐ ||エディットボックスエディットボックスエディット| ||エディットボックスエディットボックスエディット| |└――――――――――――――――――┘ └――――――――――――――――――――――――┘ その部分のコードだけは近いのが載ってたりもしたのですが、 まだMFCの操作自体もろくにできない状態なので、 どなたか操作も含めた説明の載ったサイト紹介や、直接この場でご教授頂ければ助かります。 前は操作を含めた説明まで載った親切なサイトがあったのに、いつの間にかなくなってしまって。。。

このQ&Aのポイント
  • 源泉徴収は、請求書において引いた額で請求する仕組みです。
  • 具体的な計算方法は、仕事の報酬から源泉徴収分を差し引いた金額を請求額とします。
  • 消費税などの税金は別途加算されます。広報宣伝の代行業務の場合、源泉徴収率は15%です。
回答を見る