【Ubuntu】NFCリーダーを接続して動かすまで

Raspberry PiにUbuntuをぶち込んで、USB接続したNFCリーダーで動作させるまで。

“【Ubuntu】NFCリーダーを接続して動かすまで” の続きを読む

【Ubuntu】python-pipがインストールできない

Pythonのパッケージ管理ツールであるpipをインストールしようとして、

$ sudo apt -y install python-pip

と入力したら、

E: Unable to locate package python-pip

と、表示されてインストールできない。

“【Ubuntu】python-pipがインストールできない” の続きを読む

【Visual Studio】Setupプロジェクトにて「プログラムと機能」に表示されるアイコンを設定する

「プログラムと機能」で表示されるアイコン

Visual Studioでアプリケーションを作成した後、配布用にインストーラを作るときの話。

Microsoft Visual Studio Installer Projects

インストーラの作成自体は、「Microsoft Visual Studio Installer Projects」拡張機能をインストールし、Setupプロジェクトを作成すればOK。

その手順はまたの機会にするとして、今回は「プログラムと機能」に表示されるアイコンの設定方法。

“【Visual Studio】Setupプロジェクトにて「プログラムと機能」に表示されるアイコンを設定する” の続きを読む

【C#】ファイル削除時に「パス ‘XXX’ へのアクセスが拒否されました。」が表示される

パス 'XXX' へのアクセスが拒否されました。

C#.NETでアプリケーションを作成中、ファイル削除のタイミングで以下のようなエラーが出た。

パス 'XXX' へのアクセスが拒否されました。

“【C#】ファイル削除時に「パス ‘XXX’ へのアクセスが拒否されました。」が表示される” の続きを読む

【C++】char配列をフォーマット指定で書き込むときの注意

C++(しーぷらすぷらす)

とあるC++ソースの不具合を調査をしていたところ、おかしな動きをしている箇所があった。

サンプルソース

// 変数宣言
char strA[] = "12345678";
char strB[8];
char ret[16];

// 初期化
memset(strB, 0x00, sizeof(strB));
memset(ret, 0x00, sizeof(ret));

// "12345678"をchar[8]の配列にコピー
memcpy(strB, strA, sizeof(strB));

// char[8]の内容をシングルクォーテーションで囲ってchar[16]の配列へ
sprintf(ret, "'%s'", strB);

// char[16]の配列を返す
return ret;

こんな感じのソースで、retの値に「’12345678’」が入ることを期待していたんだけど、変な値で返ってくる…。

サンプルソースで書いてしまえば一目瞭然なんだけど、実際のソースはもっと複雑なのと、SDLチェックも外されていたので、原因に気付くまで時間がかかった。

“【C++】char配列をフォーマット指定で書き込むときの注意” の続きを読む