6

VB6 DLL の 1 つを再構築しようとすると、次の警告が表示されます。

「バイナリ互換の DLL または EXE に、定義が見つからないパラメーターの型または戻り値の型が含まれています」

選択した DLL でいくつかの変更をリリースする必要があります (メソッド内部の単純な変更 -これによると、互換性を損なうものは何もありません)

私が従った一般的に受け入れられている方法は、古い DLL を別の共有ディレクトリに保持し、新しい DLL を作成している間に、バイナリ互換性を古い DLL セットに設定してコンパイルすることです。これは、新しい DLL を登録するときに GUID を変更しないようにするためです。これらの GUID は、リリース中に干渉しなかった他の DLL の参照として使用されます。

バイナリ互換性ルール (署名、パブリック メソッド、変数などの変更はありません) を破るために何も追加していないと確信しています。なぜこのエラーが発生するのですか?

基本的なことをチェックしないことで、私は初心者ですか?朝から頭をかく。どんな助けでも大歓迎です。

編集:私の署名に変更がある場合、コードを比較せずに知る方法はありますか?

4

1 に答える 1

2

古い DLL にcompat_プレフィックスを追加します。

MyAppDataAccess.dll基本的に、ファイルの名前をcompat_MyAppDataAccess.dll.

次に、ActiveX DLL のプロパティに移動し、以下のように、新しい とバイナリ互換性を持つようにプロジェクトを設定しますcompat_MyAppDataAccess.dll

あとは、DLL をビルドしてデプロイするだけです。

それはうまくいくはずです。実際、変更の結果としてバイナリ互換性が損なわれる場合は、その旨を示す警告が表示されます。

ここに画像の説明を入力

于 2013-04-03T06:15:20.870 に答える