当前位置:  编程技术>.net/c#/asp.net

解决C# X64应用程序中读取WParam溢出的问题

    来源: 互联网  发布时间:2014-10-18

    本文导语:  在X86的环境下, var wParam = (int)msg.WParam; 工作得很好。 在X64的环境下, 快速滚动滚轮会出现msg.WParam 转换为int的时候溢出,(WParam=4263510016)。 信息为: 未处理System.OverflowException  Message=算术运算导致溢出。  Source=mscorlib  StackTr...

在X86的环境下,

var wParam = (int)msg.WParam;

工作得很好。

在X64的环境下,

快速滚动滚轮会出现msg.WParam 转换为int的时候溢出,(WParam=4263510016)。

信息为:

未处理System.OverflowException
  Message=算术运算导致溢出。
  Source=mscorlib
  StackTrace:
       在 System.IntPtr.op_Explicit(IntPtr value)
       在 TIM.MouseWheelHandler.MouseWheelMessageFilter.PreFilterMessage(Message& m) 位置。。。

查证WParam是IntPtr,MSDN说

IntPtr 类型被设计成整数,其大小适用于特定平台。即是说,此类型的实例在 32 位硬件和操作系统中将是 32 位,在 64 位硬件和操作系统上将是 64 位。

所以,上面的代码应该为:

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

测试通过。


    
 
 

您可能感兴趣的文章:

  • 解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法
  • C# mysql 插入数据,中文乱码的解决方法
  • C# WinForm程序完全退出的问题解决
  • 解决C#获取鼠标相对当前窗口坐标的实现方法
  • 使用C# Winform应用程序获取网页源文件的解决方法
  • 使用C#获取系统特殊文件夹路径的解决方法
  • C#窗体程序仅允许启动一次的解决方法
  • C# 使用匿名函数解决EventHandler参数传递的难题
  • C#操作FTP出现500错误解决办法
  • c#使用process.start启动程序报错解决方法
  • C#线程间不能调用剪切板的解决方法
  • C# Mysql 查询 Rownum的解决方法
  • C# HttpClient Cookie验证解决方法
  • C# KeyUp事件中MessageBox的回车(Enter)键回调问题解决方案
  • C#中将字符串转换为整型的三种解决方法总结
  • 解决C#中取消方向键对控件焦点控制的实现方法
  • C#百万数据查询出现超时问题的解决方法
  • C#利用com操作excel释放进程的解决方法
  • c#使用nsoup解析html乱码解决方法分享 nsoup教程
  • c#代码自动修改解决方案下任意文件实例
  • jvm内存溢出解决方法(jvm内存溢出怎么解决)
  • MySQL整型数据溢出的解决方法
  • 使用checked语句防止数据溢出的解决方法
  • Android 异步获取网络图片并处理导致内存溢出问题解决方法
  • mysql unsigned 用法及相减出现补数溢出解决方法
  • Tomcat内存溢出分析及解决方法
  • !!!!内存溢出问题,解决再加100!!!!!!!!!!!
  • 基于Java内存溢出的解决方法详解
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 手动执行应用程序ok,但用crontab(在正确的用户名下)运行应用程序就报-12545(tns连接错误),怎么解决?
  • IIS7.5 http 1.1 新建应用程序失败的解决方法
  • 解决服务器应用程序不可用,错误:0x80070005拒绝访问的错误
  • iis6.0 应用程序不可用的解决方法
  • 高分求救!我在uclinux上运行应用程序时出现内存分配错误,不知如何解决,解决者高分!!
  • 分享Android平板电脑上开发应用程序不能全屏显示的问题解决
  • 仙来无事,征求最佳或经典的解决方案:Client端调用Server端的Java应用程序
  • jdk1.4 单独运行java应用程序单独运行出现环境变量问题?问题解决马上给分!!
  • asp.net 服务器应用程序不可用的解决办法
  • win2003应用程序日志-状态服务器已关闭超时的 TCP/IP 连接的解决方法
  • 使用python搭建Django应用程序步骤及版本冲突问题解决
  • asp.net 由于无法创建应用程序域,因此未能执行请求错误的解决方法
  • (高手请进)->谁有保护JAVA应用程序的好的解决方案?
  • Android 完全退出应用程序的解决方法
  • 组件访问被拒绝 --“/”应用程序中的服务器错误的解决方法
  • a2sd+状态下应用程序丢失的解决方法详细解析
  • secureCRT下Linux终端汉字乱码解决方法
  • VS2005解决方案管理器中不显示解决方案节点的解决办法
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 有高手能破解RAR的密码吗,至今没有找到人能解决?(先只给10分意思意思,若解决,至少给解决的人500分!说话算话!)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 解决 select 挡住div的解决方法
  • window.onload事件覆盖掉body onload事件(window.onload和html body onload事件冲突)解决办法
  • 奇怪,怎么“已解决”问题只有4页(10/17日之后的),以前的已解决问题到哪里看?
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 解决!解决!求助如何安装多系统!
  • oracle iis7站长之家
  • 解决多级索引速度慢的问题可否像解决多级页表那样使用TLB?
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • Liunx命令tar压缩出现如下错误该怎么解决?急需解决!感谢
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3