0

私のプロジェクトは元々バイナリ互換性に設定されていましたが、構築されていませんでした。だから私は最初にそれを互換性なしに設定しました、それはそのようにうまく構築されました。次に、それをバイナリ互換性に戻し、以前に生成されたファイルを上書きすると、正常に機能しました。

なぜこれが起こらなければならないのですか?

4

2 に答える 2

3

使用しているバイナリ互換の場所は実行可能ファイル自体であり、保存されているbincompatバージョンではないと推測するのは危険です。

コード内で公開されているcomインターフェースを変更すると、バイナリ互換性が失われ(インターフェースの拡張は回避できますが、既存のインターフェース/タイプは変更できません)、ビルドが妨げられます。

互換性なしでビルドするように設定すると、チェックが破棄され、実行可能ファイルがビルドされます。

次に、それをバイナリに戻しました。これが、バイナリ互換バージョンを個別のコピーではなく、ビルドされたexe自体にポイントしていると思う理由です。そのため、実行可能ファイルは自動的にそれ自体と互換性があり、ビルドが可能でした。

于 2010-04-13T10:35:45.283 に答える
0

VB6 には dll/exe への参照を開いて解放しないというバグがあると思います。そのため、バイナリ互換性を使用している場合は、VB6 を閉じて再度開いてビルドすると役立つ場合があります。

于 2010-04-13T10:38:20.433 に答える