問題タブ [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# に変換する
C# で使用したい IDL ファイルで定義されたインターフェイスがあります。IDL を C# で使用できるものに変換する方法はありますか?
c++ - IDLでワイド文字定数をデクレートする方法
C ++ COMアプリケーションをUnicodeに移行しています。この移行の一環として、IDLの定数文字列もUnicodeに移行します。
問題は、現時点では、ANSIとUNICODEの両方でコンパイルしていることです。つまり、L"String"構造を使用して幅の広いグラフを宣言することはできません。
現時点では、文字列定数は次のように定義されています。
const LPSTR STRING_CONST_NAME = "STRING VALUE";
そして、次のように定義します。
const LP T STR STRING_CONST_NAME = "STRING VALUE";
通常のコードの場合は、UnicodeでコンパイルするときにL "STRING VALUE"に変換する_T( "STRING VALUE")マクロを追加するだけです。
しかし、私が見ることができることから、_Tは純粋なC ++構造であるため、IDLでは使用できません。
私たちのアプローチは正しいですか?何があっても、このように定義する必要があるかもしれません。
const LP T STR STRING_CONST_NAME = L "STRING VALUE";
c++ - C++ から IDL へのツール
C++ コードを idl に変換する無料のツールはありますか? java2idl に似たものを考えています。
.net - COMで使用するためのpropputIDLメソッド.NETインターフェイスを作成する方法
Excel/VBAで.NET/ComVisibleアセンブリを使用すると問題が発生します。.NETでいくつかのパラメーターを「オブジェクト」として定義したので、VBAのオプションのパラメーターはVariantタイプを使用する必要があるため、それらはVBAのVariantに変換されます。
問題は、Excel / VBAでオブジェクトを使用しようとすると、「実行時エラー '424':オブジェクトが必要です」というメッセージが表示されることです。バリアントの値を許可する「 propputref」メソッドの代わりに「propput 」メソッドを追加するC#インターフェイスの属性が欠落していると思いますが、インターネット上で同様の質問に対する回答は見つかりませんでした。System.Reflection.BindingFlagsが表示されますが、これはコンパイル時とランタイムコードでのみ機能し、インターフェイス定義では機能しないようです。
基になるデータ型はdoubleであり、COM/VBAを介してnullまたはdoubleにする必要があります。文字列パラメータに問題はなく、variant/doubleだけです。
C#インターフェイスは次のとおりです。
C#オブジェクトは次のとおりです。
VBAの使用法は次のとおりです。
OleViewのタイプライブラリIDLは次のとおりです。
唯一の解決策は、IDLを手動で生成し、VB6でVB.NETを使用して、このスレッドのように.NETにインポートして戻すことです。それが唯一の解決策ですか?マネージコードでCOMを使用するための基本事項に関するこの記事も非常に優れていましたが、.NET / C#でのインターフェイスの定義については説明していませんでした。
position - 特定の緯度/経度の東/西 x km にある緯度/経度を見つけるにはどうすればよいですか?
与えられた緯度と経度のポイントが 2 つあります。たとえば、座標 (lat1、lon1) と (lat2、lon2) に 2 つの位置 (point_1 と point_2) があるとします。point_2 と同じ緯度ですが、point_2 の東または西に x km 離れた 3 番目のポイントを計算したいと思います。したがって、3 番目のポイントは point_2 と同じ緯度になりますが、距離 x (キロメートル単位) に応じて経度が異なります。つまり、point_3 は (lat2, lon?) になります。これは IDL で書いていますが、他の言語や式でも大歓迎です。
ありがとう
com - COM IDL定義の[in、out]と[out、retval]の違い
私が使用しているIDLのいくつかでは、メソッドで戻り値をマークするための2つの規則があることに気づきました-[in, out]
と[out, retval]
。
[in, out]
たとえば、次のように、複数の戻り値がある場合に使用されるようです。
[out, retval]
たとえば、戻り値が1つしかない場合に使用されるようです。
これはCOMIDL規則ですか、それとも私が使用しているコードの規則ですか?
2つの表記から生成されるコードに機能的な違いはありますか、それとも完全に互換性がありますか?
java - Javaでネームサーバープロセスを強制終了する方法
ネットワークを介したクライアントサーバー通信用にIDLファイルを使用してクライアントサーバーアプリケーションを構築しました。クライアントプログラムとサーバープログラムはどちらもJavaです。ユーザーがexitに入ると、サーバーとクライアントの両方が終了します。ただし、ネームサーバープロセスを強制終了できません。コマンドを使用してネームサーバーを起動しました
tnameserv -ORBInitialPort 1050
クライアントまたはサーバープログラム(Javaにある)でネームサーバーを強制終了するにはどうすればよいですか?
c++ - MIDL 生成ファイルでプリコンパイル済みヘッダーを使用できますか?
MIDL ツールを使用して特定のヘッダー/iid およびプロキシ ファイルを作成するプロジェクトがあります。これらのファイルは、nmake を呼び出すビルド後のステップを使用してコンパイルされ、プロジェクトの残りの部分とリンクされます。
IDL で生成されたファイルでプリコンパイル済みヘッダーを使用することはできますか? #include "stdafx-h"
含まれている他のヘッダーを挿入および削除するにはどうすればよいですか?
c# - C# - COM サーバーの作成 - メソッドにマップされたプロパティ
VB6 アプリケーション用に作成された COM サーバーを置き換えようとしています。
ソースコードにはアクセスできません。
何らかの理由で、VB6 アプリはコンストラクターを呼び出すことができますが、次のようになります。
システム エラー &H80004002。そのようなインターフェースはサポートされていません。
QueryInterface でインターフェイスを取得しようとするときを想定しています。
regasm /tlb と gacutil を介してアセンブリを適切に送信しましたが、奇妙なことに気付きました。アセンブリ用に生成された .tlb ファイル regasm を開くと、インターフェイスのすべてのプロパティがメソッドとして表示されることに気付きました。
これは .Net ツールが行っていることですか? そして、これは私の問題を引き起こしますか?
元のファイルの完全な tlb 定義は次のとおりです。
これは、私の .Net アセンブリの生成 tlb です。
どういうわけか私のプロパティはメソッドとしてリストされています... PreserveSig を追加しても、プロパティにする代わりに 2 つのメソッドを書き込みます。
元の tlb と同じにするには、どのような変更を試みる必要がありますか? または、少なくともそれを機能させます。
更新: イベント インターフェイスに DispIdAttribute がない場所が見つかりました。それを修正しましたが、VB6 アプリはまだ同じエラーで失敗します。
windows - IUnknown から派生したインターフェイスを IDL でデュアルとしてマークする意味はありますか?
コードを確認すると、.idl ファイルの 1 つに興味深い定義が見つかりました。
から直接派生したインターフェイスIUnknown
がデュアル インターフェイスになる可能性があるのはなぜですか? dual
属性を削除すると何か壊れますか?