問題タブ [interop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4802 参照

dll - 例外が発生するのはなぜですか - Unable to load DLL '?????.dll': 指定されたモジュールが見つかりませんでした

OpenCV ライブラリの C# ラッパーである Emgu.CV を使用しています。

Emgu.CV ソースを cv100.dll ではなく最新の OpenCV ライブラリ cv110.dll から呼び出すように変更したところ、このエラーが発生しました (????? は cv110.dll です)。cv100.dll ファイルと同じ場所に cv110.dll ファイルを配置しましたが、これは役に立ちません。

より広いスケールでは、dll を検索するときのフォルダー検索順序は何ですか。また、このエラーの他の理由はありますか。

0 投票する
3 に答える
1956 参照

vb.net - VS 2008 (vb.net) を使用して、CreateObject を使用してクラシック ASP で使用できるオブジェクトを作成する必要があります。

私はVB.netを初めて使用します。これらのオブジェクトは、以前に VB6 で作成したことがあります。私はVB.netで迷っていますが、(蹴ったり叫んだりして)これを行う方法を学ばなければなりません。私は何時間もグーグルで検索しており、わずかな前進しかありません。これを行う方法を最初から最後まで説明するリンクを誰でも投稿できますか?

クラスオブジェクトを作成できましたが、それを登録する方法と、CreateObject("Name1.Name2") の name1 と name2 がどこから来たのかわかりません。

Regsrv32 は機能しません。「エントリポイントが見つかりません」と表示され、登録されません。また、Assemblies ディレクトリにドロップできません。ある人が使用する regasm コマンドについて読んだことがありますが、これも機能しないようです。

ご協力いただきありがとうございます。

0 投票する
4 に答える
5399 参照

c# - COM を使用せずに C++ から C# メソッドを呼び出す

COM Iterop を使用せずに、C# オブジェクトを作成し、アンマネージ C++ からメソッドを呼び出す方法はありますか? VMを手動で作成したり、オブジェクトを作成したりできるJNIのようなものを探しています(ただし.Net用)。

0 投票する
3 に答える
48609 参照

.net - 次のエラーのため、CLSID {XXXX} を持つコンポーネントの COM クラス ファクトリを取得できませんでした: 80080005

.Net の「CLSID {XXXX} を持つコンポーネントの COM クラス ファクトリを取得できませんでした。次のエラーが原因で失敗しました: 80080005」エラーのトラブルシューティング プロセスは何ですか? 明確にするために:私はXPマシンで実行時にこれを取得しており、クライアントは管理者アカウントで実行されている.netコードです。{XXXX} は、社内の COM コンポーネントの 1 つを指します。

私が理解していることから、0x80080005 は「アクセス許可が拒否されました」を指しますが、アクセス許可を確認/変更するにはどこに行けばよいですか? それとも、私はここで完全に間違っていますか?エラーは、Windows COM サブシステムからではなく、コンポーネント自体から発生していますか?

0 投票する
2 に答える
5089 参照

c# - クライアントとサーバーの両方に C# で C++ COM インターフェイスを使用する

C# コードの一部を、COM を介してあらゆる種類の実装と対話させる必要があります。

この統合をユーザーが簡単に行えるようにするために、相互作用するインターフェイスを IDL に (関連する既存の DLL の一部として、ただしコクラスや実装は含めずに) 含め、Tlbimp を実行して型定義を作成することで C# コードに組み込みました。

C# を実装し、Windows レジストリ情報に基づいて COM オブジェクトを作成し、そのオブジェクトを必要なインターフェイスにキャストしました。

次に、別のプロジェクトでインターフェイスの C# 実装を作成し、登録しました。メイン プログラムはテスト COM オブジェクトを正しく作成しますが、インターフェイスへのキャストに失敗します (C# 'as' を使用すると null オブジェクトを取得し、明示的なキャストの InvalidCastException を取得します)。

インターフェイスがテストオブジェクトによって実装されていると識別されない理由を誰かが示唆できますか?

これは IDL のインターフェイス定義です (VS 2005 で C++ でコンパイル):

これは、Tlbimp によって C# 用に作成されたスタブです。

これはメインの C# コードの一部であり、その ProgID によって COM オブジェクトを作成し、それを IScriptGenerator インターフェイスにキャストします。

これは C# コードの実装で、機能していることをテストします (実際には機能していません)。

0 投票する
1 に答える
364 参照

vb.net - VB.net で ComObject をキャストする際の問題

チェックボックスである Word.Field オブジェクトがあり、Typeプロパティは wdFieldFormCheckBox と同じです。Word.Field オブジェクトを Word.CheckBox オブジェクトとしてキャストしようとしていますが、キャスト エラーが発生します。

Word.Field オブジェクトを Word.CheckBox オブジェクトにキャストするにはどうすればよいですか?

0 投票する
5 に答える
8065 参照

c# - C# で COM イベントに接続 - マネージド サーバーとアンマネージド サーバーの両方をサポート

COM イベントに接続する必要がある C# コードを書いています。IConnectionPointContainer と IConnectionPoint の使用を次のように実装しました。

問題は、COM サーバーが実際に .Net (C# など) で実装されている場合、.Net がそれを作成した後、それを COM オブジェクトではなく .Net オブジェクトとして処理することです。.Net オブジェクトは IConnectionPointContainer インターフェイスを実装していないため、オブジェクトをそのインターフェイスにキャストしようとすると null が返されます。

どうすればこれを回避できますか?もちろん、IConnectionPointContainer を自分で C# COM サーバーに実装することもできますが、COM サーバーを実装する必要がある他の開発者に簡単に説明できる、より単純なソリューションが必要です。

PS COM サーバーは非 .Net (C++、Java) で実装される可能性があるため、IConnectionPointContainer を使用する必要があります。

ありがとう、インバー

0 投票する
3 に答える
1262 参照

java - JavaFX と Java の相互運用性

新しい JavaFX API によって提供される新しい機能を Java から直接、JavaFX Script を使用するのと同じ程度に利用できますか?

基礎となるすべての JavaFX API は、純粋に Java または JavaFX Script なのか、それとも混合なのか?

0 投票する
5 に答える
19623 参照

.net - .NET エラー: 依存関係 'Microsoft.Office.Interop.Excel' が見つかりませんでした

私の同僚は、Excel を駆動する DLL を作成しました。
.NET アプリで彼の DLL を参照すると、次の警告が表示されます。

私のアプリはコンパイルされます。
ただし、同僚の DLL を使用して Excel にアクセスする部分に到達すると、上記のメッセージとともに例外がスローされます。

同一のセットアップが必要です: Windows XP Pro SP3、VS2003、.NET 1.1、Office 2003

私の問題はこの質問に似ているようですが、同じかどうかはわかりません。

どんな助けや提案もありがたく受け取った!

アップデート:

これまでの回答に感謝します!

への明示的な参照は追加していませんMicrosoft.Office.Interop.Excel
きっと私はする必要はありませんか?
ただし、この参照を追加しようとすると、Microsoft.Office.Interop.Excel[参照の追加] ダイアログで見つかりません。

おそらく、これは DLL が不足していることを意味しますか?
…でも、どうしてそんなことが起こるのかわからない!?

更新 (修正済み):

@ConcernedOfTunbridgeWells には、これを修正する答えがあります。Primary Interop Assemblies をインストールすることです。

0 投票する
5 に答える
5324 参照

c# - ASP.NET を使用した Excel の自動化

バックグラウンド

ASP.NET 2.0 を使用して、いくつかの社内ユーティリティを開発しています。その 1 つは、データベースからいくつかの情報を抽出し、データベースへのクエリに基づくデータを含む多数のスプレッドシートを含む Excel ワークブックを作成することです。

問題

概念実証のプロトタイプ (データベースから 1 つの項目をクエリし、Excel を開いてワークシートにデータを追加する単純な ASP.NET ページ) は、開発用コンピューターでローカルに実行するとうまく機能し、Excel スプレッドシートを問題なく作成して表示できます。要求どおり。ただし、サーバーで実行すると、 Excel をインスタンス化しようとすると次のエラーが発生します。

タイプ 'Microsoft.Office.Interop.Excel.ApplicationClass' の COM オブジェクトをインターフェイス タイプ 'Microsoft.Office.Interop.Excel._Application' にキャストできません。IID '{000208D5-0000-0000-C000-000000000046}' を持つインターフェイスの COM コンポーネントでの QueryInterface 呼び出しが次のエラーにより失敗したため、この操作は失敗しました: No such interface supported (HRESULT からの例外: 0x80004002 (E_NOINTERFACE)) .

解決?

Excel 2003 用の PIA を使用しており、サーバーには Excel 2003 と PIA がインストールされています。これがうまくいかない理由を説明したり、問題を追跡する方法についてのヒントを教えてもらえますか?

ご協力いただきありがとうございます。