在变量上使用 Visual Basic 类型字符

Using Visual Basic Type Characters on Variables

大家下午好,

我有一个简单的问题,我相信你们中的一些人能够解决或变通。我正在开发一个程序,允许用户从活动进程列表中 select 一个进程,然后编辑它的内存值。

我正在从文本字段中获取值,例如内存地址和新值,并将它们解析为整数。然后我需要在函数中使用这些值,其中值(特别是地址和偏移量)通常使用 &H 类型字符进行硬编码。

例如,地址参数可以这样指定:&H00509B74.
此类型字符不适用于变量或函数,因为以下示例是无效语法: &HAddress&HInteger.Parse(AddressField.Text)

我怎样才能使它工作或解决这个问题?下面是我正在使用的一些代码。我多次回去编辑它以确保我没有遗漏任何内容,如果您需要更多信息,请告诉我。 预先感谢您的帮助和时间!

注:写内存功能不是我的,网上找的

注2:"ac_client"是我测试的进程名,因为我没有实现进程所以是硬编码的select还是。

写内存函数:

 Public Function WriteDMAInteger(ByVal Process As String, ByVal Address As Integer, ByVal Offsets As Integer(), ByVal Value As Integer, ByVal Level As Integer, Optional ByVal nsize As Integer = 4) As Boolean
    Try
        Dim lvl As Integer = Address
        For i As Integer = 1 To Level
            lvl = ReadInteger(Process, lvl, nsize) + Offsets(i - 1)
        Next
        WriteInteger(Process, lvl, Value, nsize)
        Return True
    Catch ex As Exception
        Return False
    End Try
End Function

正在初始化变量:

Process = "ac_client"
Address = Integer.Parse(AddressField.Text)
WriteValue = Integer.Parse(ValueField.Text)

如果

AddressField.Text = "00509B74"

那你就可以了

Address = Convert.ToInt32(AddressField.Text,16) 'this will convert an string containing a number written "in base 16", into an integer, and store it in the Address variable

如果

AddressField.Text = "&H00509B74"

然后你可以简单地忽略作为 VB 特定十六进制表示法

的第 2 个字符“&H”
Address = Convert.ToInt32(AddressField.Text.Substring(1,AddressField.Text.Length-2),16)