3

私はVB6プロジェクトに取り組んでいます。廃止したいメソッドがいくつかあります。メソッド本体を削除した後、アイデアは標準の COM エラーを発生させることです。

Err.Raise E_NOTIMPL

この場合、標準の「メソッドが実装されていません」というエラーを使用していますが、それは私が返したい正しいメッセージではありません。

何か案は?

4

1 に答える 1

5

メソッドがまだ機能しているが推奨されていない場合は、そのままにして、IDL で非表示および参照不可としてマークし、ヘルプ文字列に適切なコメントを追加します。これにより、開発者からそれらが隠されます。

それらが機能しなくなった場合、理論的には、契約を破ったため、新しい CLSID が必要になります。

それらが機能しなくなったが、クライアントが実際にそれらを使用したことがない場合は、E_NOTIMPL を使用できます。これが適切です。(また、それらを非表示にマークし、説明するヘルプ文字列を追加します。)

ただし、呼び出し元がメソッドを呼び出している場合は、E_NOTIMPLを返すか、新しい clsid を作成して再コンパイルするかに関係なく、同じように壊れていることに注意してください。

于 2012-06-21T16:00:37.750 に答える