Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#中算术运算成功-在VB中引发异常_C#_Vb.net - Fatal编程技术网

C#中算术运算成功-在VB中引发异常

C#中算术运算成功-在VB中引发异常,c#,vb.net,C#,Vb.net,C#中的代码: 地址=glowObject+(glowIndex*0x38)+0x4; VB中的代码: 地址=glowObject+(glowIndex*&H38)+&H4 我在我的C#代码和VB代码中的那一行插入了一个断点。 两者的值相同。 C#:断点: VB断点: 看起来我的VB代码得到了结果,但它仍然在该行代码上抛出异常。 这可能是什么原因造成的?在C#中,算术运算在默认情况下未被选中,这意味着算术溢出在运行时未被选中。你可以用这个来控制它 在VB.NET中,默认情况下会选中算术运算 在代

C#中的代码: 地址=glowObject+(glowIndex*0x38)+0x4; VB中的代码: 地址=glowObject+(glowIndex*&H38)+&H4

我在我的C#代码和VB代码中的那一行插入了一个断点。 两者的值相同。 C#:断点: VB断点: 看起来我的VB代码得到了结果,但它仍然在该行代码上抛出异常。 这可能是什么原因造成的?

在C#中,算术运算在默认情况下未被选中,这意味着算术溢出在运行时未被选中。你可以用这个来控制它

在VB.NET中,默认情况下会选中算术运算

在代码中,结果超出了
int
的容量;在C#中,它无声地溢出,产生错误的结果,而在VB.NET中,它抛出异常。在这两种情况下,您的代码都有一个bug…

在C#中,算术运算在默认情况下是未检查的,这意味着在运行时不会检查算术溢出。你可以用这个来控制它

在VB.NET中,默认情况下会选中算术运算

在代码中,结果超出了
int
的容量;在C#中,它无声地溢出,产生错误的结果,而在VB.NET中,它抛出异常。无论哪种情况,您的代码都有一个bug…

找到了解决方案:) 这就像在编译器选项中选中一个框一样简单。 谢谢托马斯·列夫斯克告诉我关于 转到项目设置中的“编译”选项卡,单击“高级编译器设置”,然后选中“删除整数溢出检查”

找到解决方案:) 这就像在编译器选项中选中一个框一样简单。 谢谢托马斯·列夫斯克告诉我关于
转到“项目设置”中的“编译”选项卡,单击“高级编译器设置”,然后选中“删除整数溢出检查”

这完全是出于设计,它确实溢出了,正如异常所述。很难猜测这个表达式是如何正确的,因为glowIndex看起来太大了。随机地,您可以使用CLng(地址)来确保加法使用64位数学。尝试将其转换为long/将变量类型也设置为long,仍然引发相同的异常:/y,更多的CS攻击!耶:^)我的C#版本已经可以运行了,试图将其转换为VB用于一个单独的项目。这完全是出于设计,正如异常所说,它确实溢出了。很难猜测这个表达式是如何正确的,因为glowIndex看起来太大了。随机地,您可以使用CLng(地址)来确保加法使用64位数学。尝试将其转换为long/将变量类型也设置为long,仍然引发相同的异常:/y,更多的CS攻击!耶:^)我的C#版本已经可以运行了,正在尝试将其转换为VB以用于单独的项目。嗯,这不是一个可修复的bug。它从游戏中的一个地址读取内存,我无法控制这些值,所以我猜唯一的解决方法是在vb中取消选中它?@JustinG,C代码溢出并为
地址
指定一个负值。你是说它成功地访问了负地址的内存?!显然地我不确定,它工作得完美无缺。它成功地将内存写入该地址。地址不是200033024吗?啊,我修好了:D@JustinG对我来说,它是-1291426300,根据屏幕截图中的值,它不是一个可修复的bug。它从游戏中的一个地址读取内存,我无法控制这些值,所以我猜唯一的解决方法是在vb中取消选中它?@JustinG,C代码溢出并为
地址
指定一个负值。你是说它成功地访问了负地址的内存?!显然地我不确定,它工作得完美无缺。它成功地将内存写入该地址。地址不是200033024吗?啊,我修好了:D@JustinG对我来说是-1291426300,有你截图上的值