問題タブ [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.
c++ - カスタム IDL を指定してコード ジェネレーターを作成する方法は?
基本的なブール文字列フィールドを持つ十分に単純なスキーマがある場合、C++ でコード ジェネレーターを作成する方法。を書いたことがあれば、どのように始めましたか。記事/推奨事項を歓迎します。
編集: これは標準の CORBA idl ではないことに注意してください。
idl - IDLとは何ですか?
IDLとはどういう意味ですか?私はそれをグーグルで検索しました、そしてそれがコンポーネントのインターフェース定義に使用されるインターフェース定義言語の略であることがわかりました。しかし、実際には、IDLの目的は何ですか?マイクロソフトはそれを使用していますか?
c++ - win32でidlファイルをコンパイルするときのmidlエラー2025(midlはstring <40>が好きではありません)
Linuxツールで正常にコンパイルしたidlファイルですが、midlを使用してコンパイルしようとするとエラーが発生します
行は次のとおりです。
これは非標準のidlですか、それとも何かが足りませんか?これを可能にするmidlのスイッチはありますか?
これにもっと早く賞金を設定できたらいいのに...
com - IDL での作成不可能なコクラスの目的は何ですか?
IDL で次のような作成不可能なコクラスを宣言する理由は何ですか?
とにかく、そのようなクラスはCOMに登録されないということです。IDL ファイルと、その IDL ファイルをコンパイルすることによって生成されるタイプ ライブラリでそれを言及する理由は何ですか?
c++ - IDL インターフェイスの *end* に新しいイベントを追加する必要があるのはなぜですか?
新しいイベントを既存の COM/IDL インターフェイスに追加すると、インターフェイスの最後に追加しない限り、奇妙な問題が発生することがあります。
たとえば、次のインターフェイスがあるとします。
ここで、新しいコールバック イベントを追加するとしますNewCallback。このように追加すると、イベントが COM 経由で発生したときに問題が発生しない傾向があります。
しかし、このように追加すると、イベントが発生したときにあらゆる種類の問題 (バッファー オーバーランなど) が発生する可能性があります。
DLL エントリ ポイント、アドレス オフセット、または同様のものと関係があると推測しています。または、何かを適切に再構築していないためかもしれません。最後に追加すると、運が良ければ機能します。
誰でもこの動作を説明できますか?
c++ - midl で各インターフェイスを個別の .h に生成する方法はありますか?
idl ファイルから生成された抽象インターフェイスを継承するオブジェクトがたくさんあります。これらのインターフェイスを使用する各オブジェクトには、同じファイル interfaces.h が含まれます。このファイルには、idl インターフェイスにマップされる C++ で生成されたすべての抽象クラスが含まれています。
何かをinterfaces.idlに変更するたびに、interfaces.hが変更されるため、これに依存するすべてのクラスを再構築する必要があります。midl に各抽象クラスを独自の .h で生成するように指示するフラグまたは何かがありますか?
com - コクラスの実装が ATL タイプ ライブラリで公開されないようにする方法
クラス ファクトリの型を使用して ATL タイプ ライブラリを構築しています。このようなもの:
その後、ユーザーは をINumber介してインターフェイスを実装するクラスのインスタンスを取得できますNumberFactory。
これはうまく機能しますが、メソッドから返される ATL オブジェクトを定義してインスタンス化する方法がわかりませんNumberFactory.GetNumber()。IDL で数値を次のように定義すると、次のようになります。
コクラスはOneユーザーがインスタンス化できます。Oneしかし、コクラスのインスタンスを取得できる唯一の方法は を呼び出すことだけに制限したいと思いますNumberFactory.GetNumber("One")。
だから私の質問は次のとおりです: ユーザーが をインスタンス化Oneできないように、IDL をどのように作成する必要がありますか?OneNumberFactoryINumberOne
さらに、これを機能させるために ATL 側で何か特別なことをしなければなりませんか?
c# - idl で c++ com インターフェイスを介して c# から bool を渡す方法
私は単純なものが欠けていることを知っています.私はこれらのコムの経験がほとんどありません.
idlのインターフェース内でこれを行いたい
ただし、これは次のようになります。 [out] パラメータはポインタではありません。
わかりました。
ただし、これを実装する C# コードでは、安全ではないため、IsValid() メソッドから bool* を返すことはできません。
ブール値を返す正しい方法は何ですか?
c++ - .idl インポート インターフェイスのコクラスが別の場所で定義されていますか?
コクラスが続くいくつかのインターフェイスを定義する IDL ファイルがあります。このクラスで定義されていないインターフェイスをこのクラスにインポートさせることはできますか?