欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決C# X64應(yīng)用程序中讀取WParam溢出的問題

 更新時(shí)間:2013年04月11日 16:34:39   作者:  
C#應(yīng)用程序是AnyCPU的,在一段處理鼠標(biāo)滾輪WM_MOUSEWHEEL的代碼里碰到溢出的問題OverflowException

在X86的環(huán)境下,

var wParam = (int)msg.WParam;

工作得很好。

在X64的環(huán)境下,

快速滾動滾輪會出現(xiàn)msg.WParam 轉(zhuǎn)換為int的時(shí)候溢出,(WParam=4263510016)。

信息為:

未處理System.OverflowException
  Message=算術(shù)運(yùn)算導(dǎo)致溢出。
  Source=mscorlib
  StackTrace:
       在 System.IntPtr.op_Explicit(IntPtr value)
       在 TIM.MouseWheelHandler.MouseWheelMessageFilter.PreFilterMessage(Message& m) 位置。。。

查證WParam是IntPtr,MSDN說

IntPtr 類型被設(shè)計(jì)成整數(shù),其大小適用于特定平臺。即是說,此類型的實(shí)例在 32 位硬件和操作系統(tǒng)中將是 32 位,在 64 位硬件和操作系統(tǒng)上將是 64 位。

所以,上面的代碼應(yīng)該為:

var wParam = (IntPtr.Size == 8) ? (int)((long)msg.WParam << 32 >> 32) : (int)msg.WParam;

測試通過。

相關(guān)文章

  • WPF PasswordBox進(jìn)行數(shù)據(jù)綁定方法

    WPF PasswordBox進(jìn)行數(shù)據(jù)綁定方法

    有的時(shí)候會遇見PasswordBox的Password屬性不是依賴屬性,因此無法進(jìn)行數(shù)據(jù)綁定。本文介紹如何通過添加附加屬性解決該問題,有此問題的同學(xué)可以參考下本文
    2021-06-06
  • C#操作Byte數(shù)組和十六進(jìn)制進(jìn)行互轉(zhuǎn)

    C#操作Byte數(shù)組和十六進(jìn)制進(jìn)行互轉(zhuǎn)

    這篇文章介紹了C#操作Byte數(shù)組和十六進(jìn)制進(jìn)行互轉(zhuǎn)的的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C#中的try catch finally用法分析

    C#中的try catch finally用法分析

    這篇文章主要介紹了C#中的try catch finally用法,以實(shí)例形式分析了try catch finally針對錯(cuò)誤處理時(shí)的不同用法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • Unity UGUI實(shí)現(xiàn)滑動翻頁效果

    Unity UGUI實(shí)現(xiàn)滑動翻頁效果

    這篇文章主要為大家詳細(xì)介紹了Unity UGUI實(shí)現(xiàn)滑動翻頁效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#畫筆Pen畫虛線的方法

    C#畫筆Pen畫虛線的方法

    這篇文章主要介紹了C#畫筆Pen畫虛線的方法,涉及C#畫筆Pen屬性的相關(guān)設(shè)置技巧,需要的朋友可以參考下
    2015-06-06
  • 初步認(rèn)識C#中的Lambda表達(dá)式和匿名方法

    初步認(rèn)識C#中的Lambda表達(dá)式和匿名方法

    這篇文章主要介紹了初步認(rèn)識C#中的Lambda表達(dá)式和匿名方法,本文著重講解Lambda表達(dá)式和匿名方法的基礎(chǔ)知識,需要的朋友可以參考下
    2015-01-01
  • 詳解C#如何實(shí)現(xiàn)讀寫ini文件

    詳解C#如何實(shí)現(xiàn)讀寫ini文件

    .ini?文件是Initialization?File的縮寫,即初始化文件,是windows的系統(tǒng)配置文件所采用的存儲格式,統(tǒng)管windows的各項(xiàng)配置。本文將介紹C#讀寫ini文件的方法,需要的可以參考一下
    2022-01-01
  • C#控制IE進(jìn)程關(guān)閉和緩存清理的實(shí)現(xiàn)代碼

    C#控制IE進(jìn)程關(guān)閉和緩存清理的實(shí)現(xiàn)代碼

    這篇文章主要介紹了C#控制IE進(jìn)程關(guān)閉和緩存清理的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-04-04
  • Winform應(yīng)用程序如何使用自定義的鼠標(biāo)圖片

    Winform應(yīng)用程序如何使用自定義的鼠標(biāo)圖片

    這篇文章主要介紹了Winform應(yīng)用程序如何使用自定義的鼠標(biāo)圖片,在window系統(tǒng)中,自帶的鼠標(biāo)外觀可能看起來比較小,因此我們需要使用自己的鼠標(biāo)圖片外觀
    2020-11-11
  • C#中List<T>存放元素的工作機(jī)制

    C#中List<T>存放元素的工作機(jī)制

    這篇文章介紹了C#中List<T>存放元素的工作機(jī)制,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08

最新評論