这个问题在64位程序不存在。

32位时,MYSQL结构体在使用api时,会造成末尾内存操作越界,使定义在该结构体变量下的变量受到异常操作。

要解决这个问题需要在MYSQL成员变量下面定义两个double占位。

原理如下:

 

首先下面是一个很简单的调用,就初始化一下

mysql vc调用时内存错误

 

运行一下,看到在调用api前,m_buf内的数据全是初始化的A字符

mysql vc调用时内存错误

 

然后执行一下api函数,发现内存被篡改了16个字节。

mysql vc调用时内存错误

相关文章:

  • 2022-12-23
  • 2021-09-27
  • 2022-12-23
  • 2022-12-23
  • 2021-09-24
  • 2021-06-28
  • 2022-01-15
  • 2021-10-19
猜你喜欢
  • 2021-09-04
  • 2022-01-03
  • 2021-10-08
  • 2022-01-01
  • 2021-06-01
  • 2022-12-23
相关资源
相似解决方案