アプリ版:「スタンプのみでお礼する」機能のリリースについて

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");
}
どなたかご教授よろしくお願いします。

A 回答 (2件)

SDK for FeliCaを使われているようなので対象はWindowsだと思いますが、Visual C++を使うかVisual C#でプログラムを書かれてはいかがでしょうか。

(SDKのDLLはVC++から呼び出すのが一番簡単です。C#から呼び出すには其相応の知識が必要ですが)

なお、普通のCUI用のコードにいくつか命令を足したらGUI用になるというわけでもありませんので、まずは簡単にGUIが使える言語(というかVisualStudioの使い方)を学ばれるのが一番かと思います。

あと、蛇足だとは思いますが、認証システムにしてはセキュリティに欠ける様な気もしますので、もう少し工夫した方が良いと思います。
    • good
    • 0
この回答へのお礼

御教授ありがとうございます。
とりあえず勉強をしたいと思います。
卒業研究の課題のため、安全性はあまり考えていませんでした。

お礼日時:2010/02/05 10:30

お疲れ様です。



まず、聞きたいことをタイトルにすべきではないでしょうか?
「GUIアプリケーションの作成方法について」等

タイトルと聞きたいことの本質が違っていた場合に、質問を受ける側としては何を聞きたいの?と分からなくなります。

GUIで動かす方法について。。。
対象とする環境(OS,言語)は何でしょうか?

対象によってGUIアプリを構築する方法は変わってきます。
※Java等は環境依存しないようになっていますが。。。
  →100%ではありません。

まずは、環境をどうぞ。

この回答への補足

御指導ありがとうございます。以後気をつけたいと思います。
環境はwindows、C++を使用しようと考えております。

補足日時:2010/02/05 10:17
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!