2011-06-29 29 views
2

上でエラーを発生intにのIntPtrを追加します。は、私はこのコードを持っているの.NET Framework 3.5

私は3.5にプロジェクトをダウングレードする場合、それは私にこのエラーを与える:

Operator '+' cannot be applied to operands of type 'System.IntPtr' and 'int' 

私はそれが3.5

に動作させるためにそれを修正し、私はそれが4.0で動作する理由を知らないんどのように任意のアイデアを?事前

答えて

5

うんで

おかげ - あなたはthe documentation for the Addition propertyを見れば、あなたがそのオペレータが表示されますが唯一あなたが道で、キャストを必要はありません、.NET 4で導入されました。

.NET 3.5では、あなたは、おそらく使用できます。もちろん

lvItem.pszText = new IntPtr(lpRemoteBuffer.ToInt64() + 
          Marshal.SizeOf(typeof(LV_ITEM))); 

あなたがint.MaxValueオーバー:)

+0

私はコードが32ビットと64ビットの両方で動作することを確認する必要があります – Stacker

+0

私は64ビットで開発しています.net framework 4 – Stacker

0

を行くポインタで32ビットシステム上で、あなたがいないなら願ってする必要がありますIntPtrは.NET 4.0より前のポインタ演算をサポートしていませんでした。ポインタでそのように動作させたい場合は、IntPtrの実際のポインタinsteatを使用する必要があります。

関連する問題