問題タブ [tlbimp]
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# - .Net の COM exe 内でクラスを使用する
内部に COM クラスを含む .exe ファイルがあります。これらは .netComVisible
タイプではなく、C++ のものです。
これらのクラスを .net プロジェクト内で使用したいのですが、exe への参照を追加できません。私がしようとすると、私は得ます
tlbimp も失敗します。
しかし、利用可能な COM クラスがあるかのように見えます。私のHKEY_CLASSES_ROOT
ハイブでは、さまざまな COM クラスのエントリを確認できます。
.net プロジェクト内からこれらの COM クラスを使用する方法について、またその場合でも、手がかりを得た人はいますか?
.net - How to use tlbimp.exe's /keycontainer switch?
Anybody have an example of how to use tlbimp.exe
's /keycontainer
command line switch?
The googles...they don't help. It's always /publickey
, or /keyfile.
No example of using /keycontainer
.
.net - Visual Studio で COM 参照を追加すると、Interop Assembly のインターフェイスの名前が変更される
C# プロジェクト (Visual Studio 2008) への参照として C++ COM dll を追加しています。VS は参照を追加しますが、生成された相互運用ライブラリには元の typelib (.idl) 定義の名前が反映されません。私のライブラリ定義は次のようになります。
したがって、IMyInterface は IMyInheritedInterface から継承し、IMyInheritedInterface は IMyBaseInterface から継承します。この COM の .dll が追加されたときに、これらすべてのインターフェイスを使用できるようにします。上記の typelib に対して VS が生成する相互運用アセンブリでは、IMyInterface が MyInterface になります。なぜ、それを回避する方法はありますか?
ありがとう
.net - カスタム アセンブリ情報を使用して TLB ファイルをアセンブリに変換する
tlbimp.exe を使用して、TLB ファイルからアセンブリを生成しています。「asmversion」コマンド ライン スイッチを使用してカスタム バージョン番号を設定できることはわかっていますが、他の情報を設定するにはどうすればよいですか? 「商品名」や「会社名」などの項目を設定したいのですが、方法がわかりません。tlbimp またはその他のツールで実行できますか?
com - タイプライブラリインポーターがタイプ検証中にエラーを検出しました
私はいくつかのCOM参照を持つC#アプリケーションを書いています。ビルドしようとすると、一部のエラーで次のエラーが発生します。
c:\ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets(1418,9):エラーMSB3303:COM参照「70850f66-869f-44a0-88e7-b0460a7e3bf3」バージョン0.1を解決できませんでした。タイプライブラリインポーターで、タイプの検証中にエラーが発生しました。クラスメンバーなしでインポートしてみてください。
アプリケーションは引き続きビルドされ、正常に実行されます。
このエラーメッセージはどういう意味ですか、どうすれば修正できますか?
c# - TLBIMP.EXE の使用方法を教えてください。
Visual Studio フォルダーで見つけましたが、開くとすぐに読み込まれて閉じます。それはその機能に到達する正しい方法ですか?
com - 別のマシンで COM Exception 80040154 を取得する
次の問題が発生しています。誰か助けてもらえますか? Tlbimp ユーティリティを使用して、VB6 COM DLL を RCW DLL に変換しました。Visual Studio 2008 から、「参照の追加」を使用し、その DLL を c# クラスで使用しました。私のマシンではすべて正常に動作します。しかし、他の誰かが自分のマシンで同じプロジェクトを使用すると、そのマシンで次のエラーが発生します。そのマシンでその CLSID GUID を検索しようとしましたが、HKCR/CLSID の場所で見つかりませんでした。
別のマシンで問題が発生する理由と、この問題を解決するために何ができるかについて、誰かが手がかり/アイデアを持っていますか?
ありがとう。
c# - C#COMdllからS_FALSEを返す
IDLで次のように定義されたメソッドがあります:
C ++を使用して、私は常にこれを次のように実装しました。
今、私はこれをC#で実装していて、タイプライブラリでtlbimpを使用して、最終的に次のようになりました。
これは、C ++のようにHRESULTではなく、[out、retval]が戻り型として使用されているためだと理解しています。メソッド定義を変更せずにS_OK/S_FALSE値を返す簡単な方法はありますか?私が見ることができる唯一の方法は、私がildasm / ilasmを使用してpreservesigを追加する必要があるということです。そのため、次のようになります。
ilのコンパイル手順を実行せずに他の方法があるかどうか疑問に思いました。
visual-studio-2010 - Visual Studio 2010、TlbImpは2.0プロジェクトで.net4.0相互運用機能を生成します
C#プロジェクトでは、COMオブジェクトを指す[参照の追加]セットアップを介してCOMオブジェクトへの参照を追加します。これにより、IDEは相互運用機能アセンブリを自動生成します。したがって、これは問題ありませんが、.net 3.5 SP1、別名CLR 2.0に基づいて構築しており、生成された相互運用機能は4.0 CLRを使用しているため、互換性がありません。これを防ぐ方法はありますか?
他のオプションは、/referencesパラメーターでtlbimp.exeを使用するようにビルドスクリプトを構成することだと思いますか?mscorlib v2.0を指すには?
とにかく、これを許可するフラグがどこかにあることを望んでいます。
import - tlbimpを使用してインポートされたmsi.dllアセンブリに署名できません
これはとても些細なことのようですが、私はそれを機能させることができません。
署名する必要のあるmsi.dllラッパー(Interop.WindowsInstaller.dllという名前)があります。これを行う方法は、インポート時に署名することです(この特定のケースは、MSDN:http://msdn.microsoft.com/en-us/library/zec56a0w.aspxにも記載されています)。
しかし、どのように実行しても(w/またはw/ oaキーファイル、w/またはw/o「/delaysign」の追加なし)、生成されるアセンブリのサイズは常に36,864バイトであり、DLLのプロパティを表示するときに「デジタル署名」はありません。 "タブ(言うまでもなく、DLLは署名されていません)。
私はここで何が欠けていますか?(... ヘルプ!...)