問題タブ [com-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 投票する
17 に答える
555148 参照

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

C#.NET を使用して PDF レポートを生成する Windows サービスを開発しました。PDF ファイルを生成するために、サードパーティの dll を使用しています。アプリケーションは Windows XP プラットフォームで実行されています。Windows Server 2008 64 ビット バージョンでサービスを展開すると、次のエラーが発生しました。

次のエラーのため、CLSID {46521B1F-0A5B-4871-A4C2-FD5C9276F4C6} を持つコンポーネントの COM クラス ファクトリを取得できませんでした: 80040154。

regsvr32 コマンドを使用して DLL を登録しました。レジストリでこの CLSID を確認できます。しかし、問題は解決しません。

何が問題なのですか?

0 投票する
6 に答える
2733 参照

c# - 相互運用機能を使用してExcelワークブックに長いテキストを書き込むとエラーがスローされますか?

Excel ワークブックのセルに長いテキスト (1K から 2K 文字の長さのプレーン xml データ) を書き込んでいます。次のステートメントは、HRESULT から COM エラー例外をスローします: 0x800A03EC

同じ xml を手動でコピーして Excel に貼り付けると、問題なく動作しますが、プログラム的には動作しません。テキストを100/300文字のように削除すると、正常に機能します。

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

c# - C ++クライアント用のCOMを介したC#の公開

一部のC#タイプをCOM経由でC++クライアントに公開することを検討しています。プロジェクトの存続期間中にどのような問題が発生すると予想できますか?たとえば、バージョン管理はどのように管理されますか?

バージョン管理では、これを読むと、公開する型を装飾し、明示的なインターフェイスを使用する必要があるように思わます[ClassInterface(ClassInterfaceType.None)]。そうすれば、COMクライアントに公開されるインターフェイスを完全に制御できると思います。

前もって感謝します。

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

c# - C ++がC#オプションを呼び出す

ネイティブのWin32C++コードと、C ++コードから呼び出したいC#アセンブリのセットがあります。私は私たちのオプティオスを次のように要約します:

  1. COMを使用します。C#コードは、追加の属性(GUID、COMVisible)で装飾する必要があります。C#アセンブリはregasmに登録する必要があり、COMを介してネイティブC++コードで使用できるようになります。

  2. C ++ / CLI(以前はマネージC ++)ラッパークラスを使用します。C++クラスをネイティブC++プロジェクトに追加できます。そのクラスは/clrでコンパイルされます。ネイティブC++コードはC++/ CLIクラスを呼び出し、C ++/CLIクラスは.Netコードを呼び出します。COMは関与しません。CLRは、C ++ / CLI拡張機能によって処理されるマーシャリングで、必要に応じて魔法によって開始されます。

  3. ネイティブC++コードでCLRのインスタンスをホストします。

ラッパークラスの必要性がなくなることを除いて、オプション2に勝る利点が見当たらないため、オプション3を割引します。だから問題は、オプション1とオプション2の長所/短所は何ですか?

前もって感謝します。

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

c# - ActiveXObject を使用して JavaScript から C# Com クラスを作成する方法

C# クラスを COM に書きましたが、JavaScript から使用できませんでした。例

プロジェクトプロパティの「COM相互運用に登録する」チェックボックスにチェックを入れました。

このようにJavaScriptからこれを作成したいとき。

var a = ActiveXObject("Scripting.Commands");

「オートメーション サーバーはオブジェクトを作成できません」という例外が発生します。何が間違っているのですか。

ありがとうございました

0 投票する
6 に答える
3119 参照

c# - .NetでCOMオブジェクトをシリアル化するにはどうすればよいですか?

c#またはDelphiを使用して.netを使用してComオブジェクトをシリアル化する必要があります。これは可能ですか?

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

c# - 例外処理: 引数の検証に関しては、どの程度細かくしますか?

メールを送信する単一のメソッドを持つ単純な小さなクラスをコーディングしています。私の目標は、これを従来の Visual Basic 6 プロジェクトに実装し、COM 相互運用機能を介して COM オブジェクトとして公開することです。

私が解決するのが難しいと思っている詳細があります。それは、パラメーターを検証する際にどれだけ細かくする必要があるかということです。その観点から、私が本当に満足していないこと、そして詳細ではないことは、私が実際に例外を処理している方法です:

どんな提案でも大歓迎ですので、すべてのコメントに事前に感謝します!

:この特定のケースでEnterprise Library のValidation Application Blockを実装すると便利でしょうか?

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

c++ - いくつかの条件が満たされたときに、実行時にc ++でtlbと名前空間をインポートする方法は?

通常、プログラムの開始時に tlb ファイルをインポートします。

しかし、プログラムの途中で特定の条件が満たされたときに、tlb ファイルをインポートする必要があります。

これどうやってするの。dllをロードするにはありますLoadLibrary()が、tlbをロードするには使用できますLoadLibrary()

tlb は .dll を使用して生成されるので?