Dependency Walker はどこに?

あ~、また、知らぬ間に消えていたツールです。
Visual Studio 2008、Visual Studio 2010 には、見当たりませんでした。
(Visual Studio 2005 にあるのかどうかは、手元に環境がないので不明)
モジュール/ファイルの依存度を調べるのに、非常に便利/有益なツールなのですが…。

で、調べたところ、単独ツールとして巣立っていったようです。

2010/10/18 現在、最新バージョンは、2.2 です。
使ってみたところ、いくつか問題がありました。

  1. ファイルのフルパスに日本語が含まれると、うまく読み込めない
  2. side-by-side DLL(C ランタイム、MFC、ATL) のパス解決ができない

何とも微妙です。

検索パスは追加できるので、自分で追加するしかないですね。
ソースコードが公開されていたら、いいのにな。

広告

Visual Studio 2010 のヘルプを少しでも使いやすく

使いにくいと評判(?)な Visual Studio 2010 のヘルプですが、これを少しでも使いやすくするアイテムを
見つけ出しましたので、紹介します。

  1. IDE 内にキーワード検索機能を追加する

    Visual Studio 拡張機能をインストールすることで、Visual Studio 2010 IDE 画面中からキーワード検索が
    できるようになります!

    Keyword Index for Visual Studio 2010 Help Documentation
    http://visualstudiogallery.msdn.microsoft.com/en-us/4af86641-a302-4edf-9853-007bcc670b30

    まさに欲しかったものは、これですね。
    HelpViewerKeywordIndex.vsix というファイルがダウンロードできます。これをダブルクリックすると、

     

    という画面になりますので、インストールすると、上記サイトに画面イメージがあるように、キーワード検索ができるようになります。


     
    追加ダウンロードではなく、標準機能であるべきだと思うのですが…。
    何にしてもよかったです。

  2. ヘルプ本体にキーワード検索機能を追加する

    Help Viewer Power Tool(Beta)
    http://visualstudiogallery.msdn.microsoft.com/en-us/60a86afe-159b-4940-a22f-4fef055cbd63

    先に紹介したキーワード検索は、IDE 内に表示するものでしたが、ヘルプブラウザに表示する機能も
    追加することができます。

     

    ただ、こちらは、ベータ版とあるので、そのうちに正式版がリリースされると思います。
    使っている限りは、ベータ版で何も問題は起こっていません。ふつーに使えています。

他にもオススメのものがあるので、紹介します。

Visual Studio Gallery は、探してみると、使えそうなものがあるかもしれませんね。
また、オススメのものがあったら、このブログで紹介します。

Win7&2008R2: Problem Steps Recorder を使う

Windows 7 & 2008 R2 には、トラブルシューティング用のツールとして、Problem Steps Recorder という
ものがバンドルされています。日本語だと、「問題ステップ記録ツール」となっています。
何をするものなのかというと、”操作を記録するレコーダー” です。
結構、便利です。ユーザーにどんな操作なのかを聞くよりも、これで記録してもらい、それを確認する方が
早いかもしれません。
トラブルシューティング用のツールですので、使い方は非常に簡単です。

  1. いきなりですが、”ファイル名を指定して実行” から、psr.exe と入力します。(なぜか、メニュー登録されていない…)
    すると、こんな画面が起動します。

     

    容易に想像できると思いますが、”記録の開始” をクリックします。
    ただ、このままだと、「問題ステップ記録ツール」は、管理者権限のアプリケーションの操作を記録することが
    できませんので、できれば、最初から、psr.exe を管理者権限で起動しておくことをおすすめします。

  2. ”記録の開始” をクリックして、操作を記録します。簡単ですね。
  3. 操作が終わったら、”記録の停止” をクリックします。すると、記録したファイルを保存するために
    ”名前を付けて保存ダイアログ” が表示されます。

     

    拡張子を見てわかるように、ZIP ファイル形式で保存します。

  4. では、どのようなファイルになっているのかを見てみましょう。先ほど、保存した ZIP ファイルを
    解凍してみます。すると、Problem_YYYYMMDD_HHMM.mht という形式の単一ファイルが解凍されます。
    ファイルを開いてみると、こんな感じです。

     
    デスクトップ全体がキャプチャーされています。また、マウスの位置(クリックした部分)も緑色の枠で
    囲われているため、何をやったのかがすぐにわかると思います。

結構、便利なツールなので、ぜひ、活用してみてください。

Active X コントロールコンテナがない

今更なのですが、Active X コントロールの相談を受けました。
既存の Active X コントロールを IE8 で検証したら、まったく動かないということで
IE8 用に再設計すると…。Visual Studio 2008 で Active X なんて作ったことないので、すごーく久々です。
VC++6.0 では COM 大好きでよく作ったものです…。
VC++6.0 の頃と COM に関する IDE 操作もずいぶんと変わっていました。

とりあえず、HelloWorld レベルの HelloActiveX っていうサンプルを作っていろいろと思い出そうとしているのですが
いきなり、以前、テストでよく使った Active X コントロールコンテナが無いことに気がつきました。
調べたところ、Visual Studio 2008 には無いと…。ではどうするのかと言うと

  1. Visual C++ 2008 のサンプルをダウンロード
  2. Active X コントロールコンテナ を自分でビルド

するということが判明。

参考情報

1) サンプルをダウンロードする

ダウンロードして、vc_sample.exe を実行すると、インストーラーが走り、AllVCLanguageSamples.zip というファイルができますので
これを展開します。

2) ビルド方法

インストールフォルダ\C++\MFC\ole\TstCon

にある ソリューションファイル TstCon.sln を Visual Studio 2008 で開きます。すると 2 つのプロジェクトが入っています。
まず、TstCon プロジェクト内にあるヘッダーファイル StdAfx.h を開きます。
そこに、

1:  #ifndef WINVER
2: #define WINVER 0x0500
3: #endif

を追加します。

同じように TXProps プロジェクトにある ヘッダーファイル StdAfx.h にもある定義も同様にします。

次にプロジェクトのプロパティを開き、リンカのマニフェストファイルにある ”UAC を有効にする” を「いいえ」にします。

これで準備完了です。
あとは、ソリューションプラットフォームを Win32 にしてビルドすることで、Active X コントロールコンテナができます。

おお~、久々だ。
Active X コントロールにはデジタル署名を付与しないと動かないってことも忘れずに。

Vista 以降では、ProxyCfg.exe がない

OS コンポーネントやサービスプログラムがインターネットアクセスする際にも、IE がプロキシの設定行えるように、
ProxyCfg.exe を使うことでプロキシの設定ができるわけですが、Vista 以降(Windows 7 も含みます)、ProxyCfg.exe が
なくなってしまいました…。

では、どうするのかというと、netsh winhttp コマンドというものを使います。

例えば、現在の Winhttp のプロキシ設定を確認するのは、管理者権限のコマンドプロンプトから

netsh winhttp show proxy

を入力します。結果はこんな感じです。

他に、IE のプロキシと同じ設定にする場合には

netsh winhttp import proxy source=ie

と入力します。ただし、IE のプロキシを自動構成にしている場合(pac ファイルを使うとか)は
winhttp で処理できません。その場合には、プロキシサーバーやポートを直接登録することになります。

なお、プロキシ認証の際に、ユーザー名とパスワードを入力するような接続には対応していませんので注意が必要です。
netsh winhttpWindows Server 2008 Server Core を構築する際に使うコマンドだと思いますので
知っておいて損はありません。

デバッグツール あれこれ (その 1)

開発支援をしているとよく使うデバッグツールがあります。
自分でもどこかにまとめておきたいなということで。

  • デバッグ ツールとシンボル
    http://www.microsoft.com/japan/whdc/devtools/debugging/debugstart.mspx
    自分の意思に関わらず、ダンプが送られてきますから…WinDbg が無いとダンプ見られないし。
    32bit 版と 64bit 版があります。
    シンボルパッケージは Web 参照(Microsoft Symbol Server)してもいいですが、私は自分用のシンボルサーバーを構築しています。
  • Fiddler (Web Debugging Proxy)
    http://www.fiddlertool.com/fiddler/
    ブラウザと Web サーバーの間にプロキシを噛ませて HTTP 通信をモニタリングしようというものです。
  • Microsoft Network Monitor 3.2
    http://www.microsoft.com/downloads/details.aspx?FamilyID=f4db40af-1e08-4a21-a26b-ec2f4dc4190d&DisplayLang=en
    Microsoft 版の LAN アナライザです。非常に使いやすい UI です。
    今、3.3 がベータ中です。
    ただ、SSL を解析しようとすると不便です。せめて、SSL の 3WAY ハンドシェイクくらいはキャプチャしてほしいです。
  • Wireshark (鮫ちゃん)
    http://www.wireshark.org/
    ネットワークパケットをキャプチャするなら、やはり、これが最強かな。
    以前の Ethereal からモデルチェンジしました。

デモでズーム

仕事柄、セミナーをやる際には、デモを多く取り入れています。
デモを見て頂く際には、画面が小さくなりがちなので、画面を拡大できると見やすいですよね。
以前は、拡大鏡を使っていたのですが、もっと便利なものがあります。
(ワタシも去年に教えて頂いたのですが、ネタにしておくのを忘れました…)
Sysinternals の ZoomIt というツールです。

ZoomIt
http://technet.microsoft.com/ja-jp/sysinternals/bb897434(en-us).aspx

これ、すっごく便利です。使い方も簡単です。

ZoomIt.exe をダブルクリックして常駐させます。
で、「Ctrl」+「1」をクリックしてみると…

ぜひ、試してみてください。
他に、ラインを引いたり、矢印を引いたり、四角の枠を書いたり、文字を書いたり…いろいろとあります。

拡大鏡よりも ZoomIt の方を OS 標準でハンドルした方がいいのでは?と思ったりします。

SQL Server 2005 SP2 適応後の Windows Vista ユーザー権限追加ツール

Windows Vista に SQL Server 2005 をインストールし、その後 SQL Server 2005 Service Pack 2 を適用し、
完了すると 「 Vista での SQL Server ユーザーの準備 」 ツールなるものが起動します。

でも、たまたま、対象の SQL Server 2005 のインスタンスが停止しているとエラーと言って終了してしまいます。
インストール後、スタートメニューを見ても、そんなものはどこにもありません。
オンラインヘルプを見ても、どれが実際のモジュールなのかがまったくわかりませんでした。
で、探してみたところ

C:\Program Files\Microsoft SQL Server\90\Shared\SqlProv.exe

が実体でした。
これダブルクリックして起動すると、「 Vista での SQL Server ユーザーの準備 」 が起動します。
・・・ヘルプに書いといてください。