• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > 解决C# X64应用程序中读取WParam溢出的问题

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了wparam,wparam和lparam,loword wparam,wparam wparam,msg.wparam等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在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 >> 32) : (int)msg.WParam;

测试通过。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • 2017-05-28C#确保只有一个实例在运行的方法
  • 2017-05-28解析C#自定义控件的制作与使用实例的详解
  • 2017-05-28c#并行编程示例分享
  • 2017-05-28C# DataTable中查询指定字段名称的数据
  • 2017-05-28C#实例代码之抽奖升级版可以经表格数据导入数据库,抽奖设置,补抽
  • 2017-05-28C# 灵活使用类的方法
  • 2017-05-28C#实现手机拍照并且保存水印照片
  • 2017-05-28C#迭代器模式(Iterator Pattern)实例教程
  • 2017-05-28提取HTML代码中文字的C#函数
  • 2017-05-28c#冒泡排序算法示例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 简单实现C#异步操作
    • c#程序定期把内存信息记录到log日志示例
    • C#中ExecuteNonQuery()返回值注意点分析
    • C#实现ProperTyGrid自定义属性的方法
    • C#简单的加密类实例
    • 浅谈C#中的委托、事件与异步
    • c#操作附加数据库的方法
    • C#实现DevExpress本地化实例详解
    • C#实现ComboBox自动匹配字符
    • c# 获得局域网主机列表实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有