KBMMW 4.93.10 win64 一个BUG 修正

经常有人提到kbmmw 4.93.10 的64 位版本没有32位版本稳定。

经过官方确认,是delphi 编译器生成64 位代码内存偏移地址的错误。

在kbmMWGlobal.pas 中

有一个函数kbmMWGetCurrentThreadID, 如下:

KBMMW 4.93.10 win64 一个BUG 修正_第1张图片

此函数在64 位里面,编译器出来是这个

可以看见编译出来的机器码是

$65

$48

$8B

$04

$25

$24

$00

$00

$00

这个有时会导致64 位服务器出问题。

作者已经修改了这个问题(简单粗暴而有效)。直接使用机器码来处理,

替换上面的代码。替换后结果为

KBMMW 4.93.10 win64 一个BUG 修正_第2张图片

运行是CPU 的指令如下:

 

KBMMW 4.93.10 win64 一个BUG 修正_第3张图片

实际上就是把偏移地址从$24 换成 $48。

这样就可以解决win64 服务器的一些不稳定的问题。

如果大家碰到的话,可以试一下。

这个问题将在下一个版本上修正。

 

你可能感兴趣的:(KBMMW 4.93.10 win64 一个BUG 修正)