問題タブ [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.
.net - COM オブジェクトの ActiveD または MSXML2 が参照されている場合のビルド警告の多く
プロジェクトを .NET 1.1 から .NET 2.0 に移動した後、MsBuild は一部の COM オブジェクトに対して多くの警告を発します。
テスト用のサンプル コード (実際のコードは重要ではありません。警告を作成するために使用されるだけです):
警告メッセージは次のようになります
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets: 警告: 'ITypeLib.RemoteGetLibAttr' の少なくとも 1 つの引数をランタイム マーシャラーでマーシャリングできません。したがって、このような引数はポインターとして渡され、操作には安全でないコードが必要になる場合があります。
所見:
- ActiveDs (11 個の警告) および MSXML2 (54 個の警告) で発生します。
- 独自の COM オブジェクトでは見られません。
<Reference>
.csproj ファイルのエントリに属性が含まれていますWrapperTool = "tlbimp"
- すべての警告にもかかわらず、実行中のシステムで問題は観察されていません。
警告を取り除く方法はありますか?
.net - TLBIMP で編集された dll の後に手動で ActiveX ラッパーを生成しますか?
C# プロジェクトからアクセスする必要のある ActiveX コンポーネントがいくつかあります。
Visual Studio の [参照の追加] ダイアログを介してそれらをインポートできます。これにより、ラッパー クラスも自動的に生成されます。(すなわちABCLib
とAxABCLib
)
TLBIMP /primary
個々の OCX ファイルで実行することにより、プライマリ相互運用機能アセンブリを手動で生成できることはわかっていますが、Visual Studio ユーザー インターフェイスを使用しない限り、ActiveX ラッパーを生成する方法が見つかりませんでした。
.NET SDK で ActiveX ラッパーを生成するコマンド ライン バージョンはありますか?
AxABCLib
TLBIMP から取得した PIA から手動でバージョンを生成したい。(つまり、名前空間の設定、dll ファイル名の出力など) 可能ですか?
c# - タイプライブラリをC#コードとしてインポートするツール
アセンブリを生成するのではなく、COMタイプライブラリをC#コードにインポート/変換するツールはありますか?TLBIMPツールとTypeLibaryConverterクラスは、アセンブリのみを生成します。
生成されたInteropアセンブリに対してReflectorを実行し、分解されたソースをコピーして貼り付けることで、C#定義をリッピングすることに成功しましたComImport
が、通常、コンパイルする前にかなりの手動パッチを適用する必要があります。
望ましい目標は、衛星相互運用DLLを含まない単一のEXEであるため、おそらく答えは、ILMergeを使用して相互運用DLLをEXEに効果的に埋め込むことです。
私は過去にそのようなツールに出くわしたと確信していました-しかし多分それはそれを夢見ていました:-)
c++ - マネージ C++ プロジェクトに dll 参照を追加するときのコンパイラ エラー
VS 2008 を使用していますが、C++ プロジェクトでマネージ C++ ファイルに dll 参照を追加すると、コンパイラ エラーが散発的に発生します。スマート ポインターを使用できるように、dll への参照を追加しようとしています。 例: #import items.tlb
問題は、コンパイラがitems.tlh内の散発的な場所でクラッシュすることです。まるでバイトのチャンクが行方不明の消去されたかのようですが、ファイルを開くと、前述のエラーへの参照が見つかりません。
プロジェクト全体を数回再構築しようとしましたが、別のマシンで試しましたが、コンパイラエラーは一貫しておらず、完全に消えることもありますが、新たに再構築すると問題が再発することがあります。生成された.tlhファイルのサイズが理由かもしれないと言われましたが、実際には問題を解決したり、正しい方向に向けたりすることはありません。
同じ症状になった人いますか?ありがとうございました
visual-studio - Visual Studio での COM アセンブリの参照と tlbimp.exe による COM アセンブリの変換
COM アセンブリ (dll) を参照として追加して Visual Studio プロジェクトにインポートすると、生成された同等の共通言語ランタイム アセンブリを問題なく使用できます。
ただし、tlbimp を使用して同じ COM アセンブリを共通言語ランタイム アセンブリに変換しようとすると、さまざまな問題が発生します。
Visual Studio が tlbimp で使用する設定を複製する方法はありますか? または別の言い方をすれば、tlbimp を使用して Visual Studio と同じ相互運用クラスを生成する方法はありますか?
.net - COM インターフェイスの質問 - .NET
最近、相互運用マーシャリングについて読んでいましたが、まだ 1 つのことを理解していません。.NET アセンブリを COM で認識できるようにするには、tlbexp ツールや regasm ツールを使用する必要があります。COM を .NET アセンブリから見えるようにするには、tlbimp ツールを使用する必要があります。
それとは別に、GUID 属性、IUnknown および IDispach を使用して COM インターフェイスを処理するコードをインターネットでたくさん見てきました。
私の質問は、これらすべてが COM にどのように関連しているかということです。それを使用する必要がありますか? 私は認定の準備をしていますが、インターフェイス、GUID、IUnknown などについては何も言われませんでした...
曖昧なことを残すのはあまり好きではないので、どなたか説明していただけるとありがたいです。
- COM からインポートされたタイプ ライブラリ (tlbimp ツール) についても 1 つ質問があります。COM からインポートされたタイプ ライブラリは、システムに登録された COM オブジェクトを必要としますか?
よろしくお願いしますPK
com - tlbimp が参照型のアセンブリを自動的に生成しないようにするにはどうすればよいですか?
.NET SDK に含まれている tlbimp.exe ツールを使用して、タイプ ライブラリから相互運用アセンブリを作成したいと考えています。
私の問題は、ソース タイプ ライブラリが、使用できない別のライブラリのタイプを参照していることです。tlbimp が参照型のアセンブリを自動的に生成しないようにするにはどうすればよいですか?
次のエラーが表示されます。
Process Monitorを使用して、GridEX20 ライブラリが見つかったと結論付けましたが、見つからない別のライブラリを参照しており、このライブラリが見つからない場合、tlbimp はエラーを報告します。
visual-studio-2008 - VS 2008 のラッパー アセンブリ キー ファイルの設定はどこにありますか?
厳密な名前のアプリケーションを構築しようとしています。[参照の追加] ダイアログで追加した COM 相互運用ライブラリを参照しています。随分前になりますが、以前のバージョンの Visual Studio ではWrapper Assembly Key Fileのプロジェクト設定があったように思います。Visual Studio 2008 で見つからないようですか?
.net - VisualStudioでtlbimpの警告を抑制します
Visual StudioのC#プロジェクトでは、COMライブラリへの参照を追加できます。Visual Studioは、プロジェクトのビルド時にtlbimp.exeを使用して相互運用機能アセンブリを生成します。.csprojファイルでの参照は次のようになります。
ただし、ここでインポートしているサードパーティのタイプライブラリにより、tlbimpはいくつかの警告を発します。Visual Studioでこれらの警告を抑制するにはどうすればよいですか?ラッパーツールをに変更しようとしました
しかし、それはビジュアルスタジオに文句を言う原因になります
参照'TDAPIOLELib'をロードできないエラーが発生しました。ラッパーツール'tlbimp/silent'は有効なラッパーツールではありません。
deployment - TLBIMP.EXE-エラーTI0000-*.dllは有効なタイプライブラリではありません
ビルドサーバーでプロジェクトをビルドしているときに、コンパイルが失敗し、次のエラーメッセージが表示されます。
VS2005コマンドプロンプトを介してTlbImpコマンドを手動で呼び出そうとしましたが、同じエラーメッセージが表示されました。
調査するために、仮想マシン(Vbox)でクリーンなビルド環境を作成し、そこでビルドを実行しようとしました。うまくいきました。
また、VS2005コマンドプロンプトを介して同じTlbImpコマンドを呼び出そうとしましたが、成功しました。
これで、DLLに問題はないと想定しています。どのシナリオがこの問題を引き起こす可能性があるかについて何か考えがありますか?
編集:問題を見つけました、私の答えを見てください。;)