4

現在、Windows Server 2003 および 2008 でリソース DLL をビルドしようとしています。現在、Windows SDK で提供されているリソース DLL コード サンプルを使用していますが、それらを動作させることができません。

Windows Server 2008 では、Windows 7 SDK クリップブック サーバー サンプルのコンパイルに成功しましたが、クラスター内で適切に動作させることができませんでした。「cluster restype /create /dll」を使用してリソースをリソース タイプとしてクラスタに挿入すると機能しますが、リソースはクリップブック サーバー タイプではなく不明なタイプでリストされます。リソース DLL のコードで定義された型。そのタイプのリソースの作成にも成功しましたが、オンラインにすることはできません。私はいつもエラーが発生します:

システム エラー 5079 が発生しました (0x000013d7)。指定されたノードは、このタイプのリソースをサポートしていません。これは、バージョンが一致していないか、このノードにリソース DLL が存在しないことが原因である可能性があります。

これは、リソースを開始しようとしているノードを含むクラスター内のすべてのノードにリソースがあるという事実にもかかわらずです。

Windows Server 2003 で Platform SDK バージョン 5.2 を使用していますが、ClipBook Server Resource DLL コード サンプルをコンパイルすることさえできません。ファイル cluscfgserver.idl を開けないという MIDL1001 エラーが常に発生します。ファイルの場所のパスをプロジェクトのインクルード パスに追加しました。それはうまくいきませんでした。ファイルのパスをハードコーディングしようとすると、このファイルにリンクしようとしたときにいくつかのリンカー エラーが発生しました。

誰かがこれらの問題のいずれかについて何か知っているなら、私はどんな情報でも感謝します.

4

1 に答える 1

2

これらの例は古くて壊れています。同様の「ファイル共有サンプル」を機能させるために、私が経験しなければならなかったいくつかのことを次に示します。

  • プロジェクトを x64 に変換します (おそらく 32 ビット リソースは引き続き動作しますが、それを確認できていません)。
  • モジュール定義ファイル (.def) をリンカの入力プロパティ ページに追加して、Startup 関数が公開されるようにします。
  • リソース タイプ名をチェックするために CompareString が使用され、成功すると 0 が期待されるコードのいくつかの場所がありましたが、実際にはCSTR_EQUAL(3) が返されます。
    • これがおそらく、「(Unknown Type)」という名前を取得する理由です。
  • リソース拡張を登録するために、cluster.exe は dll 名にスペースを受け入れないため、私の場合は使用する必要がありましたcluster /REGADMINEXT:'FILESH~2.dll'
  • プロパティ シート拡張インターフェイスのみがサポートされています。Server 2008 の時点では、他のすべて (コンテキスト メニュー、ウィザード) は削除されています。
  • リソース タイプ「クリップブック サーバー」の拡張 DLL stdafx.cpp ソースを確認します。「ClipBook Server Sample」である必要があります。const WCHAR g_wszResourceTypeNames[] = L"ClipBook Server Sample\0"
于 2010-10-07T13:13:28.740 に答える