« Windowsアプリ作成、ストアで配布 | トップページ | UWPのBLE-MIDIにおけるデータ消失 »

2017年1月28日 (土曜日)

VC++のセキュリティとかいろんなところででつまづく

 昨年、C#でWindowsプログラミングをはじめ、いろいろやっているうちになぜかC++とかまで手を出すはめに。UWPじゃ制限がありできない、C#だと参考になるものがない、ということで。SDKとかサンプルプログラムを見ながら見よう見まねで。基本がわからないので、ちょっと手直ししてみるだけでも時間がかかる。その例のひとつ。

 セキュリティ的にそれは使うなとかエラーが出る。

 sprintf( dumpBuffer+index, "%02x", *data );
  は
 sprintf_s(dumpBuffer + index, 100, "%02x", *data);
 みたいな感じに。

 strcat(dumpBuffer, ":");
  は
 strcat_s( dumpBuffer, _countof(dumpBuffer), ":" );

 っていう感じだそうだ。

 参考にしたのはここ。
 ぷろぐらむめも : fopen_sとかsscanf_sとかの"_s"関数書き換え例まとめ

(追記)

 scanfを使う。セキュリティ的に問題があるという。scanf_sを使えだそうだ。パラメーターには変更なし。そのままでいけた。

 DLLを作成するプロジェクトを含むソリューションをいじる。デバッグしようとすると、「xxx.dllを開始できません。」「xxx.dllは有効なWin32アプリケーションではありません。」と言われる。
 ビルドして出力したEXEファイルは正常に意図したとおりに動作するのだけど。むむう。で、調べた。
 これはスタートアッププロジェクトの設定で解決。DLLのプロジェクトのほうを起動しようとしていた模様。ソリューションエクスプローラーで選んだほうが起動するものだとばかり思っていた。
 設定方法は「プロジェクト」メニューの「スタートアッププロジェクトに設定」でいける。ソリューションのプロパティにもあった。

 参考にしたのはこのへん。

 Windows 8.1上でVisual Studio 2015を使用してデバッグビルドしても、デバッグ開始できません。

 方法 : スタートアップ プロジェクトを設定する

 今後もこんな感じでメモしていこうかと思う。


|

« Windowsアプリ作成、ストアで配布 | トップページ | UWPのBLE-MIDIにおけるデータ消失 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/35726/64819242

この記事へのトラックバック一覧です: VC++のセキュリティとかいろんなところででつまづく:

« Windowsアプリ作成、ストアで配布 | トップページ | UWPのBLE-MIDIにおけるデータ消失 »