問題タブ [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 - PIA の作成時に TlbImp.exe エラー TI1021 を回避するにはどうすればよいですか?
数週間前、エラーなしでこれを実行しました(通常の警告のみ):
それ以来、Windows Update を実行しています (数か月の更新プログラムを取得するため)。
しかし今、同じコマンドを実行すると:
私は得る:
更新の結果として tlbimp の動作が変更された可能性がありますか、それとも tlbimp を再度実行できない理由が他にありますか?
前回は間違いなくキーファイルを持っていなかったので、今回はなぜキーファイルが必要になるのかわかりません。
c++ - idl で importlib を使用すると、自動生成された .tlh でコンパイラ エラー C3646 'unknown override specifier' が発生する
私は Visual Studio 2015 を使用しており、COM インターフェイスを定義し、コンパイル時に .tlb ファイルを生成する C# アプリケーション プロジェクトがあります。次に、その Csharp.tlb を IDL にインポートします。
MyLibrary.idl:
コンパイル中にエラーが発生します
C3646 'csharpObject': MyLibrary.tlh のオーバーライド指定子が不明です
MyLibrary.tlh はコンパイルによって自動生成され、次のようになります。
MyLibrary.tlh:
エラーは、ICsharpObjectPtr または ICsharpObject がそれぞれ不明であることを意味し、これまでのところ理解しています。import "ICplusplus.idl" が定義を .tlh および importlib("ICsharp.tlb") に追加したため、ICplusplusObjectPtr は既知です。明らかにしませんでした。
テストのために、OLE/COM Object Viewer を使用して .tlb から ICsharp.idl を生成し、その idl をインポートしました。その後、エラーはなくなりました。
しかし、.tlb の importlib が直接動作しないのはなぜですか? 毎回 .tlb から idl ファイルを生成したくありません。
#include "ICsharp.tlh" が欠落しているか、.tlh の型を認識させる何かがあると思います。しかし、idl またはコンパイラに ICsharpObject を適切に参照するように指示するにはどうすればよいでしょうか?
よろしくお願いいたします。
vb.net - CATIA 起動時の RegServer (権限なし)
CATIA R18-R24 は、すべての設計者が起動できるネットワーク ドライブで利用できます。問題は、VB.Net COM インターフェイスが開始バージョンのタイプ ライブラリを認識しないことです。RegServer を実行するには (正しいバージョンの tlb を登録するには) 特権が必要です。
CATIA の起動時に tlb を登録する方法はありますか? または他の解決策はありますか?
c# - tlbimp.exe / COM 相互運用生成: VS2017 で異なる結果
過去に、VS2015 を使用して COM オブジェクトの相互運用ラッパーを生成していました。COM オブジェクトは継続的に開発中であるため、インターフェイスが変更されることがあり、相互運用ラッパーを再生成する必要があります。これまでのところ問題ありません。しかし、VS2017 にアップグレードしてから、相互運用ラッパーのコードが変更されていることに気付きました。プロジェクトをコンパイルしないようにします。
具体的には、VS2015 ではプロパティが取得されますが、VS2017 ではメソッドget_
とset_
メソッドのペアが取得されるという違いがあるようです。
たとえば、次のようなものを使用できます
string dummy = comObject.AProperty;
VS2015 で生成された COM ラッパーを使用している場合。しかし、それはに変更する必要があります
string dummy = comObject.get_AProperty();
代わりに、VS2017 で生成された COM ラッパーを使用する場合。
両方のバージョンから 2 つのラッパーを逆コンパイルすると、次のように定義されていることがわかります。
VS2015
VS2017で
古い方法で VS2017 に相互運用ラッパーを生成させる方法はありますか?
ありがとう