問題タブ [idl]

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 に答える
1314 参照

c# - Visual StudioがIStreamをswinterop.comtypesにマップするように、idlでIStreamを宣言するにはどうすればよいですか?

C#クライアントからストリームを取得して処理する必要があるCOMオブジェクトがあります。IStreamを使用する必要があるようです。だから私は私のidlを以下のように書きます。次に、MIDLを使用してtlbにコンパイルし、ソリューションをコンパイルして登録し、ライブラリへの参照をC#プロジェクトに追加します。

Visual Studioは、自分のライブラリにIStream定義を作成します。どうすればそれを止めて、COMTypes IStreamを使用できるようにできますか?3つの答えのうちの1つがあるようです:いくつかのインポートを追加します

  • IStreamを再宣言しないようにidlに追加します(MSCOREEをインポートするとそれは実行されますが、C#の問題は解決されません)
  • どういうわけか、Visual StudioでIStreamのエイリアスを作成しますが、これを行う方法がわかりません。
  • 私の考えはすべて完全に間違っているので、IStreamを使用するべきではありません

ヘルプ...ありがとう

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

java - idljにantでidlファイルをコンパイルさせる方法

ant を使用して、sun-idl コンパイラ (idlj) で idl ファイルをコンパイルする方法がわかりません。

誰にもアイデアはありますか?

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

.net - コマンド ラインで .NET アセンブリから IDL を取得する方法 (または TLB を IDL に変換する方法) は?

.NET アセンブリ (実際には Aspose.Words) があり、クライアントがそれを COM クライアントから問題なく使用できるようにしたいと考えています。

  1. そのため、クライアントが C++ や Delphi などの言語から使用でき、.TLB 自体を抽出する必要がないように、.TLB をアセンブリと共に出荷します。

  2. また、クライアントが ASP でプログラミングしている場合に列挙値を確認したい場合に調べることができるように、.IDL もアセンブリと共に出荷します。

  3. .TLB と .IDL をビルド スクリプトで生成したい。問題なく .TLB を生成できます。しかし、コマンド ラインで .IDL を生成できません (または、代わりに .TLB を .IDL に変換できません)。OLEVIEW.EXE を使用して手動でこれを行いますが、これは適切ではありません。

Delphi の TLIBIMP.EXE について聞いたことがありますが、それができるように聞こえますが、個別には入手できないようです。

質問は次のとおりです。

  1. 上記から何か愚かに聞こえますか?

  2. コマンド ラインを使用して .NET アセンブリから .IDL を取得する方法。

ありがとう。

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

java - valuetype を IDL に追加してコンパイルすると、「No factory found」で失敗します

ファクトリ メソッドが見つからないことについてクライアントが不平を言い続ける理由がわかりません。「factory」キーワードを使用して、または使用せずに IDL を試しましたが、動作は変わりませんでした。SDMGeoVT IDL は、使用される (正常に実行される) 他のオブジェクトと一致します。

生成された SDMGeoVT クラスは、継承とメソッドに関して、他の生成されたクラスと一致します。

IDL は次のとおりです。idlj コンパイラはエラーなしで実行されます。サーバーに関数を実装すると、サーバー コードが実行され、ネットワーク経由でオブジェクトがシリアル化されます (サーバー コードは正常に実行されます)。

クライアントは次のスタック トレースで爆撃します (最初の数行は jacORB ライブラリからのものです)。

コードをコンパイルしてテストするためだけに小さなアプリを作成しました (ArrayClient & ArrayServer)。基本アプリ (jacORB デモから) は正常に動作します。

基本クラスの OFBaseVT と単一のオブジェクト (SDMGeoVT とリストの戻り値) を使用してみましたが、同じ問題が発生しました。

編集: IDL を構造体と値型に変更すると機能します。以前、新しいインターフェイスを作成しましたが、同じ問題で失敗しました。

編集:はい、サーバーも更新しました。サーバーとクライアントのコードは同じコード ベースです。両方のセットを構築する ant スクリプトを挿入する必要があります。-fall および -ftie オプション。

編集: (6 月 10 日) 元のビルダーが作成した過度に複雑なフレームワークに絞り込みました (メンテナンス プログラマー、そうです!) 実行する必要がある「スーパー」の 1 つに呼び出しがあります。

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

vba - IDL のデフォルト値が丸く見えるのはなぜですか?

オプションの最後の引数を持つ関数を持つ COM オブジェクトがあります。IDL は次のようになります。

これは問題なく動作します。パラメーターを指定しない場合、50.6 が入力されます。ただし、いくつかの開発環境 (Excel VBA、VB6) では、既定値は表示前に丸められます。左中かっこを入力すると、次のように表示されます。

SomeFunction( [パラメータ As Single = 51 ] )

これがなぜなのか誰か知っていますか?バグですか?これは、クライアント プログラマーを混乱させるでしょう...

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

c++ - IDL/ODL を使用した doxygen

多数の .ODL ファイルODL コンパイラから生成された .h ファイルを含む C++ プロジェクトがある場合、.odl と .h の両方を解析するように doxygen に指示する必要がありますか? 一般に、生成されたコードを文書化するのは好きではありませんが、IDL は一種の特殊なケースです。

いずれにしても、私のテストでは ODL ファイルのメンバー リストが正しく機能していないようです。ODL ファイルは正しく解析されていますか?

0 投票する
0 に答える
548 参照

c++ - インポートされたタイプ ライブラリの IDL の非修飾名

インターフェイスを実装する COM クラスを作成しました。このインターフェイスにメソッドを追加したいと思います。このメソッドのパラメーターは、外部の olb ファイルで定義されたインターフェイスへのポインターです。私のプロジェクトでは、この olb ファイルはno_namespaceディレクティブなしでインポートされました。したがって、メソッドのパラメーターのインターフェイス名は、h\cpp ファイルで修飾する必要があります。しかし、MIDL は名前空間を認識せず、メソッドで修飾されていないインターフェイスを持つヘッダー ファイルを生成します。したがって、エラー C2061 です。少しサンプル:

somelib.olb で定義された interface Foo。私のプロジェクトでの修飾名はsomeLib::Foo

MIDL はヘッダー ファイル MyProject.h を生成します

そしてエラーメッセージ

この問題を解決するには?前もって感謝します。

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

c# - C#とC ++コードの間で定数を共有するにはどうすればよいですか?

1つはC#とWCFを使用し、もう1つはC++とWWSAPIを使用して2つのプロセスを作成しています。2つの間の通信に使用されるアドレスを1つの場所で定義し、C#とC++の両方で使用できるようにしたいと考えています。これは可能ですか?

最も近いのは、IDLで定数を定義し、MIDLとTLBIMPを使用して、C#で使用できるDLLに定数を取り込むことです。しかし、これは定数を公開していないようです、または少なくとも私はそれをそうする方法を理解することができません。多分それは型定義だけに制限されています。

他に何か提案はありますか?

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

visual-studio - How does Visual Studio determine the order to compile IDL files?

I have a COM project that contains a number of IDL files, some of which are imported into other ones. How does Visual Studio decide which ones to compile (using MIDL) first?

I want to control the order. I have a master IDL file which contains my library declaration with several imports, and I get a build error if it is not the first one compiled.

(If any of this sounds really weird... I'm new to COM/ATL, and it's really, really confusing).

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

com - 多くの IDL インターフェイスを備えた COM タイプ ライブラリで定義を管理する

100 を超えるインターフェイスを備えた COM タイプ ライブラリを作成しています。すべてのインターフェイスとコクラスを 1 つのファイルで定義するのは合理的ではありません。IDLlibraryファイルは何千行にもなります。そのため、各インターフェイスを独自のファイルに入れ、imports を使用してその依存関係を満たすというアイデアを試しています。

この多くのインターフェイスを管理するには、どのような戦略を使用できますか? どこでもディレクティブを使用しようとimportしていますが、それらを TLB に含めようとして行き詰まっています。で試してみ#includeましたがlibrary、依存関係がおかしいようです。

例A.idl

例B.idl

ExampleLibrary.idl