vtable 内のオーバーロードされたメソッドの順序は、win32 コンパイラ間で常に同じですか?
問題: 「インターフェース」(データ メンバーを持たない純粋な仮想クラス) があります。これらは、さまざまなコンパイラからのポインターを介して使用できます (クライアントは、標準の c dll ファクトリ メソッドを呼び出してポインターを取得します)。これは、1 つのメソッドを除いて、さまざまなコンパイラ (例: borland で作成されたクライアント、Visual C++ で作成されたインターフェイス dll) で正常に機能します。このメソッドは、戻り値は同じですが、パラメータが異なります。このメソッドには 4 つのバージョンがあります。このメソッドを同じように呼び出しても、クライアントをコンパイルしたコンパイラによって異なる結果が返されます。アセンブラコードをざっと見てみると、vtable に別のオフセットがあるように見えました (私はアセンブラを読むのが得意ではありません)。
今はわかりません-原因を見つけたのでしょうか、それともボーランドがビジュアルスタジオとは異なるvtableを処理しているだけで、すべてが正しいので、他の場所を検索する必要があります.
よろしくお願いします。回答ありがとうございます。
トバイアス