VB6升级到VB2010之十四:与运算和逻辑运算判断失误导致升级出错~

VB6升级到VB2010之十四:与运算和逻辑运算判断失误导致升级出错~,第1张

概述玩VB6的同学,升级到VB2008或VB2010。。。一般会先用用升级向导... 偶然的机会,发现VB2008的升级向导关于与运算和逻辑运算有一个大大的臭虫。。 原代码: Public Const READ_CONTROL = &H20000 Public Const STANDARD_RIGHTS_READ = (READ_CONTROL) Public Const STANDARD_RIGHT


玩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之十四:与运算和逻辑运算判断失误导致升级出错~所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1282470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存