ClipCursor函数引用注意
- 写了一个鼠标锁程序,但是ClipCursor函数的.net下调用却出了点问题。以下是代码,调试时出现
- [quote]对 PInvoke 函数“鼠标锁!鼠标锁.Form1::ClipCursor”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。[/quote]
- 查找了MSDN中API函数在.net上运行发现,在VB6中的数据类型long在VB2005中要变成integer,我改过来,但是仍然出现错误。先在这里描述一下问题,等待解决问题的时候,会将结果写出来。
- Public Class Form1
- Public Structure RECT
- Dim Left As Integer
- Dim Top As Integer
- Dim Right As Integer
- Dim Bottom As Integer
- End Structure
- Public Declare Function ClipCursor Lib "user32" (ByVal lpRect As RECT) As Integer
- Public Sub lockMouse()
- Dim lockRECT As RECT
- lockRECT.Left = 0
- lockRECT.Top = 0
- lockRECT.Right = 0
- lockRECT.Bottom = 0
- ClipCursor(lockRECT)
- End Sub
- Public Sub openMouse()
- Dim openRECT As RECT
- openRECT.Left = 0
- openRECT.Top = 0
- openRECT.Right = Me.Width
- openRECT.Bottom = Me.Height
- ClipCursor(openRECT)
- End Sub
- Private Sub btnLock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLock.Click
- lockMouse()
- End Sub
- Public password As String
- Private Sub btnSetPassword_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetPassword.Click
- Try
- password = InputBox("请输入你的密码:")
- Catch ex As Exception
- MsgBox("请输入正确有效的密码", MsgBoxStyle.OkOnly)
- End Try
- End Sub
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- End Sub
- Private Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click
- Dim OpenPassword As String
- Try
- OpenPassword = InputBox("请输入密码:")
- If OpenPassword = password Then
- openMouse()
- Else
- MsgBox("密码错误")
- End If
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- End Sub
- End Class
出现错误的原因出于声明变量的方式上。
之前是用byval按值传递,因为它传递的是数值,如果每次按值传递的话,原函数是指针传递,就会出现参数类型不符,所以应该用Byref.
ClipCursor函数引用注意相关推荐
- js函数引用、函数调用与回调函数
var function1=function2; 1.调用function1()函数的结果正好与调用function2()相同,因为两个函数都引用了相同的代码,因此函数名称也称为函数调用. 2.引用函 ...
- 【Kotlin】Kotlin 函数总结 ( 具名函数 | 匿名函数 | Lambda 表达式 | 闭包 | 内联函数 | 函数引用 )
文章目录 一.函数头声明 二.函数参数 1.默认参数值 2.具名参数 三.Unit 函数 四.TODO 函数抛出异常返回 Nothing 类型 五.反引号函数名 六.匿名函数 七.匿名函数的函数类型 ...
- lambda函数引用学习记录
lambda表达式 当一个函数中的参数有一个接口,并且接口中只有一个需要实现的方法(java8之后接口中可以有默认方法default修饰) 比如接口: interface MyInterface{pu ...
- Python函数引用
python中函数引用包括值传递和引用传递 python中函数的参数是引用传递 当形参是不可变对象如:数值.字符串,因为变量不能修改,所以运算不会影响到变量自身 def change(a): # 形参 ...
- PHP生成器与函数引用的方法
(PHP 5 >= 5.5.0, PHP 7) 生成器提供了一种更容易的方法来实现简单的对象迭代,相比较定义类实现 Iterator 接口的方式,性能开销和复杂性大大降低. 生成器允许你在 fo ...
- 解决PyCharm中opencv的cv2不显示函数引用,高亮提示找不到引用
类似这种,鼠标放在高亮处会提示在 '__init__.py' 中找不到引用之类的,图截的别人的,我的已经弄好了截不了 先确定下imread()等方法是否能用,我发现我之前的问题其实是输入cv2.之后不 ...
- python中闭包函数_Python的闭包问题(关于内嵌函数引用闭包函数的变量问题)
一.闭包: 记得:闭包的特性就是:内嵌函数会保存它引用的外围函数的变量值. 闭包概念:在一个内部函数中,对外部作用域的变量进行引用,(并且一般外部函数的返回值为内部函数),那么内部函数和被引用的变量等 ...
- php function 返回值_PHP函数引用返回的实例详解
引用返回 手册里是这么写的:引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时.不要用返回引用来增加性能,引擎足够聪明来自己进行优化.仅在有合理的技术原因时才返回引用!要返回引用 当你想将函数 ...
- 菜鸟学习JavaScript小实验之函数引用
function tt() { alert(11); } var b = tt; var b1 = tt() ...
最新文章
- 子网掩码 以及 子网数为什么减去全0和全1
- mysql表误删回复_mysql 找回误删表的数据方法(必看)
- linux日志绕接,[判断题] 绕接式保安接线排按结构分为固定式和旋转式。
- linux管理员常用的命令分享
- Python中利用LSTM模型进行时间序列预测分析
- Android GUI之Window、WindowManager
- vux安装中遇到的坑(转)
- python打印索引序号_打印带有索引的矩阵python
- 学java到底好在哪里你知道吗?(附低配版王者荣耀开发视频)
- ask的matlab代码,二进制ASK调制matlab仿真代码
- 使用RandomString设置随机经纬度-jmeter
- 香橙派 OrangPi PC 安装Lakka游戏系统及使用指南
- 软件开发的质量及效率
- 服装erp软件如何提高企业利润
- Git正解 脱水版 【2. Git基础】
- 使用BootStrap.编写网页
- 删除K个数字,使剩下的数字串最大(最大数字)
- ENVI 混合像元分解
- ICPR 2020 U∧2-Net之AI生成肖像画,精细到毛发!
- spooling 技术工作原理