算术运算导致 Color.FromArgb 溢出

纳米运动

在 vb.net 中制作 Windows 窗体应用程序时,我遇到了这个错误:

System.OverflowException: '算术运算导致溢出。'

我的代码:

Imports System.Runtime.InteropServices

Public Class Form1
    <DllImport("dwmapi.dll")>
    Private Shared Sub DwmGetColorizationColor(ByRef ColorizationColor As UInteger, ByRef ColorizationOpaqueBlend As Boolean)
    End Sub

    Private Function UintToColor(ByVal argb As UInteger)
        Dim a = argb >> 24
        Dim r = argb >> 16
        Dim g = argb >> 8
        Dim b = argb >> 0
        Return Color.FromArgb(a, r, g, b)
    End Function

    Dim windowColor
    Dim windowBlend

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.Show()
        DwmGetColorizationColor(windowColor, windowBlend)
        Me.BackColor = UintToColor(windowColor)
    End Sub
End Class

该函数返回(来自“autos”):

a: 227r: 55182g: 14876783b: 3808456647argb:3808456647

那个家伙

我认为您正试图将 uint 拆分为字节大小的块。

也许试试这个

    Imports System.Runtime.InteropServices
Public Class Form1
    <DllImport("dwmapi.dll")>
    Private Shared Sub DwmGetColorizationColor(ByRef ColorizationColor As UInteger, ByRef ColorizationOpaqueBlend As Boolean)
    End Sub

    Private Function UintToColor(ByVal argb As UInteger)



        Dim bytes As Byte() = BitConverter.GetBytes(argb)


        Dim b = bytes(0)
        Dim g = bytes(1)
        Dim r = bytes(2)
        Dim a = bytes(3)



        Dim result As Color = Color.FromArgb(a, r, g, b)
        Return result
    End Function

    Dim windowColor
    Dim windowBlend

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.Show()
        DwmGetColorizationColor(windowColor, windowBlend)
        Me.BackColor = UintToColor(windowColor)
    End Sub
End Class

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

算术运算导致int溢出

来自分类Dev

算术运算导致C#溢出

来自分类Dev

如何修复错误“算术运算导致溢出”

来自分类Dev

System.IO.File.Delete引发算术运算导致溢出

来自分类Dev

算术运算即使在未检查的情况下也导致溢出

来自分类Dev

算术运算导致溢出..以下高亮代码中的错误

来自分类Dev

Windows Phone的 - Color.FromArgb()无效的转换

来自分类Dev

Windows Phone-Color.FromArgb()无效的转换

来自分类Dev

'<Module>'的类型初始值设定项引发了异常,算术运算导致溢出

来自分类Dev

如何解决“算术运算导致溢出”。对于具有长值的枚举

来自分类Dev

Windows Phone 8数组设置Color.FromArgb

来自分类Dev

Windows Phone 8数组设置Color.FromArgb

来自分类Dev

算术溢出等于模运算吗?

来自分类Dev

我对这个异常的原因感到好奇:color1.R-color2.R导致溢出

来自分类Dev

如何在python中进行算术运算时检测溢出?

来自分类Dev

使用常量进行算术运算时出现溢出错误

来自分类Dev

警告C26451算术溢出:使用运算符'-'

来自分类Dev

使用常量进行算术运算时出现溢出错误

来自分类Dev

C#:通过ODBC读取数据导致算术溢出

来自分类Dev

斐波那契问题导致算术溢出

来自分类Dev

Color.FromArgb如何将Int32作为参数?

来自分类Dev

算术溢出nvarchar

来自分类Dev

检查算术溢出并获得溢出计数?

来自分类Dev

给定一个可能为空的int时返回Color.FromArgb的最佳实践C#

来自分类Dev

UnmarshalJSON导致堆栈溢出

来自分类Dev

边界导致DIV溢出

来自分类Dev

DATEADD函数导致溢出

来自分类Dev

DFS导致堆栈溢出

来自分类Dev

compareTo导致堆栈溢出

Related 相关文章

热门标签

归档