KBMMW 4.93.10 win64 一个BUG 修正

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

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

在kbmMWGlobal.pas 中

有一个函数kbmMWGetCurrentThreadID, 如下:

KBMMW 4.93.10 win64 一个BUG 修正

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

KBMMW 4.93.10 win64 一个BUG 修正

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

$65

$48

$8B

$04

$25

$24

$00

$00

$00

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

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

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

KBMMW 4.93.10 win64 一个BUG 修正

运行是CPU 的指令如下:

KBMMW 4.93.10 win64 一个BUG 修正

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

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

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

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

上一篇:kbmMW 5.06.20试用笔记


下一篇:kbmMW 5.10.01试用报告