C#とVBScriptで動作するCOMオブジェクトを開発しています。また、32ビットと64ビットをサポートしなければなりません。COMのIntPtrとAs Any Any
私が持っている問題は、ポインタです。このアプローチの問題は、私はできないということです
「いずれかのような」私がvoid *としてPTRTYPEを宣言すると、C#はのIntPtrとしてそれらを見て、VB6/VBScriptのは、それらを見て、私の.IDLの一部に
HRESULT Copy([in] PTRTYPE destAddr, [in] PTRTYPE srcAddr, [in] int bytes);
を参照してください。 「任意の」タイプのパラメータを使って簡単にポインタを計算します。
私はPTRTYPEを長く宣言すれば(64ビットで "ハイパー")、ポインタ計算を行うことができますが、C#では32/64ビットプラットフォームに応じて同じメソッドに対して2つの異なる定義があります。
VARIANTをPTRTYPEタイプとして使用しないでください。
C#とVBScriptの両方に互換性を持たせる方法はありますか?
ありがとうございます。 Mauro。
ADO_LONGPTRの失敗を引き起こしたのと同じ間違いをしています。 Copy64()メソッドまたはIAddressインターフェイスを提供するだけです。 –