問題タブ [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 に答える
659 参照

com - COM コンポーネントの Windows インストーラー

インストーラーを作成する必要がある C++ ActiveX コントロールがあります。dll を削除し、いくつかのレジストリ キーを作成する必要があります。

regsvr32 を介して自己登録用に作成した .RGS ファイルが約 6 個あります。

インストーラーを実行するために、RGS スクリプトを Visual Studio 2008 Windows インストーラー レジストリ GUI に手動で移植しています。正確なポートを行うことはできないように感じます (たとえば、ForceRemove のような RGS キーワード)。

これらのファイルを IDL ファイルから生成する方法はありませんか? 私はこれを間違っていますか?

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

c++ - インテリセンスからメソッドとプロパティを適切に隠す方法

クラス、メソッド、およびプロパティをインテリセンスから適切に非表示にしながら、それらを呼び出す機能を維持する方法を知っている人はいますか? タイプ ライブラリから生成された相互運用機能アセンブリには表示されませんか?

まだ消費者に公開したくない自動テスト用の API フックを作成しています。これは、アプリケーションに付属しているビルトインの SaxBasic エディターからはうまく機能しているように見えますが、参照が相互運用アセンブリに追加されると、オブジェクト、メソッド、およびプロパティを非表示にできません。

これらを隠そうとする方法の例を次に示します。さまざまな順列が試行されました。事前に感謝します!

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

java - Java アプリケーションから RPC 経由で Wi​​ndows プロセスと通信する

RPC 経由で Wi​​ndows プロセスと通信しようとしています。私が通信したいアプリケーションは、Visual Studio 2008 を使用して C++ で開発されています。アプリケーションは、idl ファイルを介してインターフェイスを提供し、その後、microsoft midl ツールを使用してコンパイルされます。このアプリケーションは既に開発されており、変更できません。

Javaで開発している2番目のアプリケーションからこのアプリケーションと通信しようとしています。Windows アプリケーションによって提供される機能は、RPC の Java 実装と互換性がありますか?

MSDN で読んだことによると、Windows アプリケーションによって提供される RPC は DCE に準拠しています。Java で DCE/RCP に関する詳細を見つけることに成功していませんが、12 年以上前の MS jvm について説明している記事がいくつかあります。

また、jdk にパッケージ化された idlj を使用して、Windows アプリケーションから idl を使用して Java コードを生成することに成功しませんでした。idlj コンパイラは、idl ファイルの構造とキーワードに関する多くのエラーを返します。MS idl 形式が idlj で期待される形式と互換性がないためだと思います。

このシナリオの経験がある人はいますか?

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

c++ - Firefoxのアクセシビリティのために.IDLファイルをコンパイルした後のエラー

Firefox MSAA()を使用しているときに、非常に厄介な問題が発生しました。cmdからIDLファイルをコンパイルしようとしましたが、失敗しました。次に、それをプロジェクトに追加してビルドを実行しました。VSでコンパイルされたインターフェイスファイルの後に、2つのCファイル(ISimpleDOMDocument_h.hとISimpleDOMDocument_i.c)がありました。これらをプロジェクトに追加しました。しかし今、私はそのようなエラーのために構築することができません

エラーC1853:'Debug \ TestProj.pch'プリコンパイル済みヘッダーファイルが以前のバージョンのコンパイラからのものであるか、プリコンパイル済みヘッダーがC ++であり、Cから使用している(またはその逆)d:\ projects \ testproj \ testproj \ isimpledomdocument_i .c

手がかりはありますか?

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

c++ - COM インターフェイス定義でユーザー定義型パラメータを指定する方法は?

私の COM インターフェイス メソッドの 1 つは、次のようにユーザー定義型のパラメーターを必要とします。

*.idl ファイルで someUDT の定義をどのように適合させることができますか? someUDT型はユーザー定義の構造体です

ありがとう。

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

java - CORBA シーケンス: メソッドを使用してオブジェクトのシーケンスを定義できますか?

アイテムのリストを返すメソッドとのインターフェイスがあり、各アイテムには特定のメソッドが関連付けられている必要があります。たとえば、メソッドがアタッチされた一連の「アイテム」オブジェクトを返すメソッド listAllItems() を定義したい (そのため、クライアント プロセスでアイテムの 1 つを選択して itemone.buy() と言うことができます。たとえば、これにより、サーバー上で対応するメソッドが実行されます)。

CORBAでこれを行うことはできますか? 「インターフェース項目」を定義できず、他のインターフェースで「シーケンス」と言うことができないようです。

違いが生じる場合は、idl を Java にコンパイルします。

ありがとう!

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

com - インポートされたタイプ ライブラリを OCX または TLB ファイルから取得する方法は?

ActiveX の COM 依存関係を見つける方法はないと確信していましたが、驚いたことに、OLEVIEW には次のようなコメントが表示されます。

// TLib : // TLib : OLE オートメーション : {00020430-0000-0000-C000-000000000046} importlib("stdole2.tlb"); // TLib : Visual Basic ランタイム オブジェクトとプロシージャ: {EA544A21-C82D-11D1-A3E4-00A0C90AEA82} importlib("3");

TypeLibInfoFromFile を使用して同じ情報を抽出しようとしましたが、MSDN で見つけたものに基づいて、この情報を提供する Api はありません。この情報を OCX または Tlb ファイルから抽出する方法を知っていますか? すべての ocx が vb6 でコンパイルされていることを知っているので、インポートされた (明示的にコードに含まれていない) インターフェイスについてこの情報を信頼できますか?

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

types - IDLのポータブルアドレスオフセットパラメータ

古い32ビットCOMサーバーを64ビットアーキテクチャに移植しています。

多くの関数は、__int3264および__int3264ポインターのように、パラメーターとしてバッファーアドレスとオフセットを取ります。問題は、インターフェイスがIDispatchで継承されており、__ int3264が自動化インターフェイスでサポートされていないため、このタイプがx64で__int64として自動的に生成されないことです。

アドレスを期待する関数の場合、__int3264*をvoid*に置き換えます。

オフセットパラメータは、__ int3264およびLONG(両方とも自動化で32ビット+ x64)として配置されました。ハイパー(__int64としてマップ)は32ビットシステムで機能しなくなるため、使用できません。

すべてのオフセット/アドレスパラメータにvoid*を使用する必要がありますか、それともそれらをx64 COMサーバーに移植する別の方法がありますか?

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

java - JavaインターフェースをIDLに移植する

CORBAを使用して移植したいJavaRMIアプリがあります。そのためには、リモートインターフェイスの定義をJavaからIDLに変更する必要がありますが、その方法が正確にはわかりません。

現時点では、Javaインターフェイスのメソッドの1つに、事前定義されたデータ型(string、intなど)ではなく、自分で定義したパラメーターがあります。Javaインターフェースでは、次のように定義します。

RMI実装では、クライアントとサーバーの両方がビルドパスにクラスMyObjectの定義を持っているため、オブジェクトの受け渡しが可能になります。

したがって、MyObjectファイルをクライアントとサーバーの両方に配置してから、IDLのメソッド定義を次のように変更すると機能するかどうか疑問に思っています。

または、IDLでもこのクラスとそのメソッドを何らかの方法で定義する必要がありますか?

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

com - TLB からインポートされたインターフェイス上のアウトプロセス COM サーバーの QueryInterface

インターフェイスを A.idl ファイルで定義し、それを A.tlb にコンパイルします。

VS2005 ATL プロジェクト "B" では、B.idl で importlib(A.tlb) を使用し、stdafx.h で #import "A.tlb" を使用し、ATL COM クラスで A.tlb からインターフェイス IA を実装します。プロジェクトは B.dll と B.tlb を出力します

B.tlb を C# アプリケーションの参照に追加し、コード内で COM オブジェクトをインスタンス化します。

どちらを使用しても、インスタンス化は問題なく機能します

また

どちらも問題なく動作し、オブジェクトがインスタンス化され、A.tlb (実際には tlb から生成された RCW) で定義された IA インターフェイスにキャストして、そのメソッドを呼び出すことができます。それでも問題ありません。

次に、OLEView を使用して、既定の DllHost.exe サロゲートを使用して COM オブジェクトのアクティブ化を有効にします。

サロゲート内の COM オブジェクトのインスタンス化(CoCreateInstance のパラメータ CLSCTX_LOCAL_SERVER) にはまだ問題はありませんが、オブジェクトを A.tlb で定義された IA インターフェイスにキャストしようとすると、E_NOINTERFACE が表示され、QueryInterface が失敗したというメッセージが表示されます。サポートされているインターフェース」。

助けてください。何が間違っている可能性がありますか?追加情報が必要な場合は、可能な限り提供するように努めます。