アンセーフunsafeコードを許可する

C や C++ で習得したメモリ操作技術を C# で実施するには、unsafe というキーワードを用いて "このブロックはメモリ破壊リスクがあるところですよ" というのをコンパイラに教示しなくてはなりません。

基本的にC#は危険なメモリ操作は抑止するポリシーなので unsafe で教示されてもビルドエラーを出します。そこでビルド設定をアンセーフコードを許可するように変更することでビルドを成功させるようにします。

結論からいいますと、本記事の最後に示す Fig. 3 の画面にたどり着いて設定すればいいのですが、たどり着く方法が2種類あるのでその流れを示します。

まずはソリューションエクスプローラを表示させてください。ソリューションエクスプローラが表示されていない場合は、メニューバー [表示]...[ソリューションエクスプローラ]を実行するか、ショートカットキー Ctrl+Alt+L で表示させてください。

ソリューションエクスプローラに示された現在のプロジェクトのツリービューの Properties をダブルクリックすれば Fig. 3 のビルドオプション画面が出現します。

Fig. 1 ソリューションエクスプローラからビルドオプション画面を開く方法

別の方法は、メニューバーから [デバッグ]...[aaa のデバッグプロパティ] を実行します。そうすれば Fig. 3 のビルドオプション画面が出現します。aaa は現在のプロジェクト名によって違うので、それぞれのプロジェクト名で読み換えてください。

Fig. 2 メニューバーからビルドオプション画面を開く方法

下記 Fig. 3 が、ビルドオプションを設定する画面です。ここで、構成を "すべての構成" にして、アンセーフコードの許可にチェックを入れます。これで unsafe が含まれているコードであってもビルドが可能になりました。

Fig. 3 ビルドオプション画面

この設定は、VisualStudio のグローバル設定ではありません、プロジェクトごとに設定する必要がありますのでご注意ください。

C/C++ で腕に覚えのある方はアンセーフコードのリミッターを外して存分に暴れまわってください。