日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

      首頁(yè)編程開發(fā)C#.NET → 解決X64應(yīng)用程序中讀取WParam溢出的問題

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

      相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:西西整理時(shí)間:2013/3/22 23:03:54字體大。A-A+

      作者:西西點(diǎn)擊:0次評(píng)論:0次標(biāo)簽: 溢出

      C#應(yīng)用程序是AnyCPU的,在一段處理鼠標(biāo)滾輪WM_MOUSEWHEEL的代碼里碰到溢出的問題OverflowException。

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

      var wParam = (int)msg.WParam;

      工作得很好。

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

      快速滾動(dòng)滾輪會(huì)出現(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ù),其大小適用于特定平臺(tái)。即是說,此類型的實(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;

      測(cè)試通過。

        相關(guān)評(píng)論

        閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評(píng)論

        最新評(píng)論

        發(fā)表評(píng)論 查看所有評(píng)論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)