私はこのプロジェクトでは、プロジェクトの大きな断片のソースコードがないのに、いくつかの情報を含む.DLLファイルがあります。 DLLファイルにバグがあります。私はそれのバグを持つクラスのサブクラスを作成することができ、私はそれにアクセスできる点に既に存在するオブジェクトをダウンキャストしたいと思います。問題は、いつでもオブジェクトにアクセスでき、バリアントとしてキャストされていることです。OleVariantをDelphiのオブジェクトに変換する
tempSubclass := Subclass(ParentClass(Integer(oleVariantCast)));
が、私は次のエラーを取得::私は(コンテキストを削除するために編集した)次のことを試してみた
Could not convert variant of type (Dispatch) into type (Integer)
をOleVariantのうち、オブジェクトへのポインタを取得する他の方法はありますおよび/または型キャスティングが関与していますか?
ありがとうございます。
EDIT:はい、ParentclassはIDispatchを実装しています。 訂正:親クラスは、IDispatchから継承するインタフェースを実装しています。
は、dllのコードと同じバージョンのデルファイでコンパイルされたコードですか? –
私が知る限り、それはすべてDelphi 6です。 – mnuzzo
あなたは、モジュールの境界を越えてオブジェクトを消費しようとしているかどうかを確かめたいでしょう。このオブジェクトリファレンスを抽出したら、やっていることにはまだまだ従うことができません。 –