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

corba - CORBA IDL イン、アウト、インアウト

in、out、inout - CORBA IDL 関数パラメータでの「方向」演算子の意味は何ですか?

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

c++ - IDL でクラス コンストラクターを宣言するにはどうすればよいですか?

クラス コンストラクターは IDL でどのように定義されますか?

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

com - TypeLibraryからプログラムでIDLコードを取得する

次の手順を実行するコードを書いています。

.net .dllを登録し、regasm.exeを使用して.tlbを生成します

  1. .net .dllを登録し、regasm.exeを使用して.tlbを生成します
  2. typeLibraryからIDLコードを生成し、ファイルに保存します。
  3. IDLコードを編集して、小さな変更を加えます。
  4. Midl.exeを使用して、IDLを.tlbに再コンパイルします。

ご想像のとおり、私が固執しているステップはIDLの生成です。これは、Windows APIに付属のOleViewerを使用して手動で実行できることはわかっていますが、この手動の手順を削除したいと思います。

コマンドラインからOleViewerを操作したり、IDLコードを生成する他の方法を見つけたりすることはできません。

誰かアイデアがありますか?IDLを生成するコードはOleViewerのどこかにある必要があることを私は知っています...おそらくそれにアクセスする方法はありますか?

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

c# - インデクサーのようなプロパティを COM に公開する

私は既存のCOMインターフェースを持っています。新しいインターフェイスを (新しい GUID で) COM として公開する .net アセンブリを作成したくありませんが、インターフェイスの構造は同じである必要があります。

このインターフェイスを公開する .net クラス (C#) を作成するにはどうすればよいですか?

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

com - .tlb ファイルをヘッダーと実装ファイルに変換するにはどうすればよいですか?

mscorlib.tlb を変換しようとしています。通常、C++ では次のように使用されます。

ヘッダーと実装ファイルに変換するにはどうすればよいですか?

Visual Studio を使用して、上記の行を含むダミーの cpp ファイルをコンパイルすると、.tlh ファイルが生成されました。実装ファイルもあるはずではありませんか?

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

eclipse - コンパイルなしのEclipseCORBA?

私は EclipseCORBA を使用していますが、ほとんどは構文の強調表示のためだけです。IDL コンパイラをオフにする方法があるかどうか疑問に思っています。その理由は、IDL ファイルに有効なエラーが表示されないためです。

シンタックス ハイライト IDL ファイル用の EclipseCORBA に代わる Eclipse プラグイン (理想的には、フォーマッターを備えたもの :> ) も歓迎します。:)

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

.net - 列挙型のみを含む COM ライブラリを作成する際の問題

私はCOM相互運用プロジェクトを行っています。一部の VB および C++ ATL COM プロジェクトを C# および .NET Interop に置き換えます。.NET で列挙型を定義して ComVisible にすると、Typelib.EnumValue だけでなく、Typelib.EnumType_EnumValue として公開されます。typelib エクスポーターは、値の名前が一意であることを確認するためにこれを行います。しかし、すべての列挙型が一意であることを知っているので、アンダースコアは必要ありません。また、アンダースコアを取り除かない場合、変更が必要なクライアント コードがたくさんあります。

この問題の解決策を見つけるために、IDL ファイルで列挙型を定義し、これから typelib と .Net 相互運用機能を作成しました。

tlb ファイルを生成する MIDL.exe でタイプ ライブラリを作成します。

そして、tlbimp.exe でアセンブリを作成します。他の相互運用アセンブリと同じキーでアセンブリに署名します。

tlbimp OpenStructureAdapterEnum.tlb /keyfile:KeyFile.snk

次に、アセンブリを regasm.exe に登録します。このアセンブリは問題なく表示され、アンダースコアのない列挙型が含まれています。しかし、問題は、OLE/COM オブジェクト ビューアーや VBA または VB6 から COM ライブラリを参照できないことです。また、COM に公開された別のアセンブリから列挙型を参照すると、列挙型への参照を含むインターフェイスの一部が制限されたメソッドとして公開されます。

列挙型のみ (アンダースコアなし) を含み、他の .net Interop アセンブリからこれらを参照する COM ライブラリを作成するにはどうすればよいですか?

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

.net - 簡単なセットアップでの「タイプ ライブラリ インポーターはメンバーの署名を変換できませんでした」という警告

この最も単純な IDL ファイルを観察します。

コンパイル方法は次のとおりです。

TlbImp 警告に注意してください。作成された相互運用アセンブリは次のとおりです。

属性が存在ComConversionLossすると気分が悪くなります。私の質問は、この警告を取り除くにはどうすればよいですか?

PS 私の質問は、「タイプライブラリインポーターがメンバーの署名を変換できませんでした」という警告の原因は何ですか? . ただし、コマンドラインでコンパイルしても警告がどこにも消えないため、そうではありません。

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

c++ - IDLファイルのみでCOMオブジェクトを登録する

サードパーティのIDLファイルがあり、コンパイルするとヘッダーと_i.cファイルが生成されます。これら3つのファイルはすべて、VisualStudio2010プロジェクトの一部です。(これまでのところ、COMの初期化を試みた以外は、プロジェクトは空です。)

を呼び出すことでプロジェクトをコンパイルできます

実行時に、CoCreateInstance()は「クラスが登録されていません」というエラーを返します。

私がインターネットで見つけることができるすべては、DLLファイルまたはEXEファイルでzippy32を実行することによってCOMオブジェクトを登録することを言います。しかし、私はIDLファイルしか持っていません。プロジェクトによって生成されたEXEファイルを登録しようとしましたが、モジュールが「ロードされましたが、エントリポイントDLLRegisterServerが見つかりませんでした」というエラーが発生しました。

正直なところ、他に何を試すべきかわかりません。