解决C#X64应用程序中读取WParam溢出的问题
2023-06-13 09:14:49 时间
在X86的环境下,
varwParam=(int)msg.WParam;
工作得很好。
在X64的环境下,
快速滚动滚轮会出现msg.WParam转换为int的时候溢出,(WParam=4263510016)。
信息为:
未处理System.OverflowException
Message=算术运算导致溢出。
Source=mscorlib
StackTrace:
在System.IntPtr.op_Explicit(IntPtrvalue)
在TIM.MouseWheelHandler.MouseWheelMessageFilter.PreFilterMessage(Message&m)位置。。。
查证WParam是IntPtr,MSDN说
IntPtr类型被设计成整数,其大小适用于特定平台。即是说,此类型的实例在32位硬件和操作系统中将是32位,在64位硬件和操作系统上将是64位。
所以,上面的代码应该为:
测试通过。
相关文章
- C# WinForm 设置DataGridView选中指定行
- c# restsharp官网_hbase shell put
- 【地铁上的Redis与C#】数据类型(九)--set类型数据扩展操作(一)
- c#动态执行字符串脚本(优化版)
- C# WPF DataGrid下面 使用CheckBox 选中事件
- C# String的本质
- C与MySQL结合实验如何成功构建测试系统(c#+mysql测试)
- C#可空类型分析
- c#中带头(声明)的xml(封装)生成
- C#开发之Socket网络编程TCP/IP层次模型、端口及报文等探讨
- 深入C#任务管理器中应用程序选项隐藏程序本身的方法详解
- C#禁止应用程序多次启动的实例
- C#中使用反射获取结构体实例及思路
- c#取得控制台应用程序根目录
- C#可用于登录验证码的四位随机数生成方法
- C#常用自定义函数小结