問題タブ [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.

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

.net - PIA の作成時に TlbImp.exe エラー TI1021 を回避するにはどうすればよいですか?

数週間前、エラーなしでこれを実行しました(通常の警告のみ):

それ以来、Windows Update を実行しています (数か月の更新プログラムを取得するため)。

しかし今、同じコマンドを実行すると:

私は得る:

更新の結果として tlbimp の動作が変更された可能性がありますか、それとも tlbimp を再度実行できない理由が他にありますか?

前回は間違いなくキーファイルを持っていなかったので、今回はなぜキーファイルが必要になるのかわかりません。

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

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 を適切に参照するように指示するにはどうすればよいでしょうか?

よろしくお願いいたします。

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

vb.net - CATIA 起動時の RegServer (権限なし)

CATIA R18-R24 は、すべての設計者が起動できるネットワーク ドライブで利用できます。問題は、VB.Net COM インターフェイスが開始バージョンのタイプ ライブラリを認識しないことです。RegServer を実行するには (正しいバージョンの tlb を登録するには) 特権が必要です。

CATIA の起動時に tlb を登録する方法はありますか? または他の解決策はありますか?

0 投票する
0 に答える
217 参照

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 に相互運用ラッパーを生成させる方法はありますか?

ありがとう