VB6升级到VB2010之十四:与运算和逻辑运算判断失误导致升级出错~
来源:互联网 发布:傣族语言翻译软件 编辑:程序博客网 时间:2024/05/16 05:53
玩VB6的同学,升级到VB2008或VB2010。。。一般会先用用升级向导... 偶然的机会,发现VB2008的升级向导关于与运算和逻辑运算有一个大大的臭虫。。
原代码:
Public Const READ_CONTROL = &H20000
Public Const STANDARD_RIGHTS_READ = (READ_CONTROL)
Public Const STANDARD_RIGHTS_WRITE = (READ_CONTROL)
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_SET_VALUE = &H2
Public Const KEY_CREATE_SUB_KEY = &H4
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_NOTIFY = &H10
Public Const KEY_CREATE_LINK = &H20
Public Const SYNCHRONIZE = &H100000
Public Const STANDARD_RIGHTS_ALL = &H1F0000
Public Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE))
Public Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))
Public Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
Public Const KEY_EXECUTE = ((KEY_READ) And (Not SYNCHRONIZE))
升级后:
Public Const READ_CONTROL As Integer = &H20000
Public Const STANDARD_RIGHTS_READ As Integer = (READ_CONTROL)
Public Const STANDARD_RIGHTS_WRITE As Integer = (READ_CONTROL)
Public Const KEY_QUERY_VALUE As Integer = &H1
Public Const KEY_SET_VALUE As Integer = &H2
Public Const KEY_CREATE_SUB_KEY As Integer = &H4
Public Const KEY_ENUMERATE_SUB_KEYS As Integer = &H8
Public Const KEY_NOTIFY As Integer = &H10
Public Const KEY_CREATE_LINK As Integer = &H20
Public Const SYNCHRONIZE As Integer = &H100000
Public Const STANDARD_RIGHTS_ALL As Integer = &H1F0000
Public Const KEY_READ As Boolean = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE))
Public Const KEY_WRITE As Boolean = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))
Public Const KEY_ALL_ACCESS As Boolean = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
Public Const KEY_EXECUTE As Boolean = ((KEY_READ) And (Not SYNCHRONIZE))
请看红色的标注处,赫然给升级成了Boolean类型,而正确的应该是Integer。很明显升级向导将与运算当成了逻辑运算最终导致类型侦测试错误。
- VB6升级到VB2010之十四:与运算和逻辑运算判断失误导致升级出错~
- VB6升级到VB2010之三:旧的VB6函数和语句升级~
- VB6升级到VB2010之二:控件属性升级~
- VB6升级到VB2010之四:App对象升级~
- VB6升级到VB2010之六: 最嗦哆的升级~
- VB6升级到VB2010之七: 剪贴板操作升级~
- VB6升级到VB2010之八: PopUpMenu升级~
- VB6升级到VB2010之十: 一些常量的升级~
- VB6升级到VB2010之一:变量升级~
- VB6升级到VB2010之五: 从Unload 升级成Me.Close看VB2010有多类~
- VB6升级到VB2010之九: Debug.Print
- VB6升级到VB2010之十二: CheckBox控件
- VB6升级到VB2010之十三: 更改文本框字体~
- VB6升级到VB2010之十五: 缺省值传递未进行推断直接默认为ByRef导致错误~
- VB6升级到VB2010之十一: 复杂的鼠标指标升级
- VB6到VB2010的一些怪怪的TextBox升级~
- 从TextBox的升级看VB6与VB2010的不同~
- MAC升级导致brew出错
- VB6升级到VB2010之十三: 更改文本框字体~
- Hibernate com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'password' in
- 检查内存泄漏和高危函数的自动化
- 【木头Cocos2d-x 009】游戏实例-《跑跑跑》制作教程(第一篇)——加载地图
- DirectDrawEnumerateEx 用法
- VB6升级到VB2010之十四:与运算和逻辑运算判断失误导致升级出错~
- 数组--排序--组成最大数
- 实习日志(15):SQLServer与MySQL语句的一些区别
- 在XCode中跟踪编译次数
- java学习 第四节 简单java程序解析
- 谈谈苦逼这件事
- 在iOS中让图片旋转时抗锯齿
- zoj 1610 Count the Colors(线段树,成段更新染色)
- sqlserver里面获取日期的不同格式