1

.NET プロファイリング API を使用する COM サーバーを作成しようとしています。この COM サーバーは、Windows Mobile 6 デバイスで実行されます。この COM サーバーの目的は、同じデバイスで実行されている .NET アプリケーションのプロファイルを作成することです。ただし、Windows Mobile SDK で次のヘッダー ファイルを見つけることができません。

  1. cor.h
  2. corprof.h

これは、Windows (デスクトップ) SDK で利用可能な対応するバージョンを使用して、これらのヘッダー ファイルを移植する必要があるということですか?

.NET プロファイリング API を使用する上で非常に重要な ICorProfilerCallBack インターフェイスのファミリを定義するのは、これらのヘッダー ファイルです。

Windows SDK に存在するこれらのヘッダー ファイルを調べたところ、.NET フレームワークのオブジェクト モデルに関連するプラットフォーム固有の情報と、.NET アセンブリを表す PE ファイルの形式に関連する多くの情報が含まれていることがわかりました。 . 移植を成功させるには、.NET のこれらの領域での実装の詳細に関する詳細な知識が必要なようです。代替手段はありますか?

4

1 に答える 1

1

発生している問題は、CompactFrameworkが任意のICorProfilerCallBackインターフェイスをサポートしているという誤った想定を最初に行ったことです。そうではありません。プロファイリングを行いたい場合は、過去に私が見た/使用した他のプロファイラーがいくつかのパスをたどっています。

  1. リフレクションを使用して、デスクトップ上のCFアセンブリを再構築およびインストルメントします。独自のパブリッシングパラダイムを使用して、機能の開始/終了メッセージなどをプッシュできます。これはコードプロファイリングには役立ちますが、メモリプロファイリングにはあまり役立ちません。
  2. CF用のMono.Cecilをビルドし、それを使用してターゲットデバイス上でインストルメント/エミットします。これは遅くなりますが、よりポータブルになります。
  3. CF CLR Profilerが使用するように、CFで完全に文書化されていないメモリプロファイリングAPIを使用します。私はこれらのドキュメントを探して空になり、MicrosoftにCodeplexでツールをオープンソース化するようにプッシュしようとしましたが、どちらも進歩していなかったので、これは多くのリバースエンジニアリングになります既存のツールとWiresharkを使用したネットワークパケットの処理。
于 2013-02-19T14:03:38.350 に答える