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

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

在kbmMWGlobal.pas 中

有一个函数kbmMWGetCurrentThreadID, 如下:

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

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

$65

$48

$8B

$04

$25

$24

$00

$00

$00

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

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

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

运行是CPU 的指令如下:

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

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

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

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

最新文章

  1. ora-01658 :无法为表空间USERS 中的段创建INITIAL区
  2. 学习Jquery
  3. oracle截取某个字符前面的字符串
  4. UIButton之Block回调
  5. JSP/SERVLET重定向技术综述
  6. assets
  7. ###STL学习--适配器
  8. leetcode(java)
  9. 客户端负载均衡Feign之一:申明式服务调用Feign入门示例
  10. shell tr命令
  11. Ubuntu Linux 环境变量PATH设置
  12. 查看 SharePoint 2013 部署到GAC的自定义dll
  13. 发现ramnit样本一枚
  14. Freedom DownTime
  15. SpringMVC错误小结
  16. yii2 basic VER
  17. cocurrent包ExecutorService线程池
  18. 小a和uim之大逃离(luogu P1373 dp)
  19. Servlet中init-param与context-param的区别
  20. Raw-OS源代码分析之消息系统-Queue_Buffer

热门文章

  1. winform中设置窗体的默认焦点
  2. Intellij IDEA +MAVEN+Jetty实现Mybatis的HelloWorld
  3. Gemfile分平台加载gem
  4. Java与C++程序在编译和运行上的区别
  5. MVC图片验证码
  6. WindowsForm--Bubble User Control
  7. mysql重复记录的查询删除方法
  8. dubbo工作原理
  9. “XXX::Invoke”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。
  10. C++ 几种构造函数的区分和调用