1

IMB WMQ ライブラリを使用してキュー マネージャに接続しています。

これは私が長い間使用しているコードです。友人が VS2005 で作成し、VS2010 で使用できるように更新しました。LoadRunner ツールと統合していくつかのパフォーマンス スクリプトを実行すると、問題なく動作します。ただし、デバッグしようとすると、次のエラーが返されます。

{"Unable to load DLL '**amqxcs2.dll**': The handle is invalid. (Exception from HRESULT: 0x80070006 (E_HANDLE))"}

これは外部 DLL のデバッグに関連するものですが、解決方法がわかりませんでした。

次のコマンドを使用して、dll を GAC に登録しました。

gacutil /I "C:\Program Files\IBM\WebSphere MQ\bin\amqmdnet.dll"

amqxcs2.dll を追加しようとすると、次のエラーが返されます。

gacutil /I "C:\Program Files\IBM\WebSphere MQ\bin\amqxcs2.dll"
Failure adding assembly to the cache:   The module was expected
to contain an assembly manifest.

Windows Server 2003 で VS2010 Ultimate を実行しています。

Loadrunner 内でコードを実行すると、キューからメッセージを送受信できますが、デバッグできません。

ここに同様の投稿がありますが、解決策はありません。

4

2 に答える 2

0

「アプリケーションが必要とする場所にライブラリがあることを確認する」ことが解決策ではないと思うのはなぜですか?

使用する予定のマシンに使用している製品を適切にインストールするか、必要なファイルを正しい場所に手動でコピーしてごまかす必要があります (また、手動で「正しい場所」を把握することもできます。SysInternalsツールは、次の場合に役立ちます。アプリケーションが使用しようとしているファイルを追跡します)。

于 2012-04-13T19:01:21.150 に答える
0

これは、COM エラーの可能性があります。IBM アセンブリはおそらくネイティブ dll であるため、.NET dll 専用の GAC に登録することはできません。ネイティブ COM dll はRegsvr32に登録できます。このエラーは、ネイティブ dll が欠落している別の dll に依存している場合にも発生する可能性があります。また、ネイティブ dll の依存関係を把握するために使用できる Dependency Walker ツールに関する情報を提供する「Visual C++ アプリケーションの依存関係について」も参照してください。

于 2012-04-13T23:00:17.133 に答える