プログラム系統備忘録ブログ

記事中のコードは自己責任の下でご自由にどうぞ。

IFileOperation::NewItem()の使用例

確認環境: Windows 7 SP1 64bit, Microsoft Visual Studio Community 2017(VisualStudio/15.0.0+26228.9)
IFileOperation関係の前の記事: IFileOperationでZIPファイルを展開する方法
IFileOperation関係の次の記事: FOFX_RECYCLEONDELETEやFOFX_ADDUNDORECORDの振る舞いの実験

この記事は IFileOperation::NewItem method の使用例や特徴について記述しています。

続きを読む

IFileOperationでZIPファイルを展開する方法

確認環境: Windows 7 SP1 64bit, Visual Studio Community 2015 Update 3
IFileOperation関係の前の記事: IFileOperationで異なる種類の操作を登録した時のUI表示の話 (以前はC#のCOM相互運用を使っていました)
IFileOperation関係の次の記事: IFileOperation::NewItem()の使用例

続きを読む

C#のリリースビルドのEXE中から.pdbのフルパスを除外する設定

確認環境: Visual Studio Community 2015(バージョン: 14.0.23107.156)

アプリケーションを書き、リリースビルドを行い、ふと生成されたEXEファイルをバイナリエディタで開いて検索してみると.pdbのフルパスが含まれているではありませんか。
フルパスであるため、プロジェクトがDocuments以下にある場合はユーザー名も含まれてしまいます。

C#プロジェクトのプロパティを開いて以下の操作を行うと、.pdbのフルパスがEXEに含まれないように出来ます:

英語表記の場合
「Build」タブ→「Advanced...」ボタンをクリック→表示される「Advanced Build Settings」ダイアログにて、「Debug Info:」を「none」に指定
日本語表記の場合
「ビルド」タブ→「詳細設定...」ボタンをクリック→表示される「ビルドの詳細設定」ダイアログにて、「デバッグ情報:」を「none」に指定

初期状態ではデバッグ情報はDebug Build時は「full」、Release Build時は「pdb-only」になっていると思います。

該当ダイアログについてのMSDN情報は Advanced Build Settings Dialog Box (C#) をどうぞ。

IFileOperationで異なる種類の操作を登録した時のUI表示の話

確認環境: Windows 7 SP1 64bit
IFileOperation関係の前の記事: IFileOperationで進行ダイアログ付きでディレクトリ操作を行う (.NETで必要な宣言や、本記事でも使っているCreateShellItem補助メソッドについて記述しています)
IFileOperation関係の次の記事: IFileOperationでZIPファイルを展開する方法 (次からC++を使っています)

今回の記事も、簡単のためCOMオブジェクトの解放処理を一切記述していません。ご了承ください。

続きを読む

IFileOperationで進行ダイアログ付きでディレクトリ操作を行う

確認環境: Windows 7 SP1 64bit
目的: Explorerと同様の進行ダイアログを表示しつつ、ディレクトリの移動/コピー/リネーム/ゴミ箱に移動/完全に削除、を行いたい

この記事では、.NETからCOM相互運用およびP/Invokeを経由してIFileOperationを扱うサンプルコードを記述しています。
IFileOperation関係の次の記事: IFileOperationで異なる種類の操作を登録した時のUI表示の話

続きを読む

VisualStudioのコード分析で識別子のタイプミスなどを検出する

2015/11/24 23:00頃 それなりに追記修正
2015/11/25 22:00頃 細々と追記修正
確認環境: Visual Studio 2015 Community Version 14.0.23107.0 D14REL

C#プロジェクトで、全てのルールを使ってコード分析したときのメモです。
c# - Visual Studio Code Analysis vs StyleCop + FxCop - Stack Overflow によると、VisualStudioのコード分析とFxCopは同じエンジンを使っているとのことなので、FxCopでも同様の結果を得られると思います。

続きを読む