求助:mysql c++库在linux下field_count的异常问题

w195438178 2014-01-17 05:11:47
今天发现mysql c++库有个很奇特的异常现象。在获取MYSQL_RES的field_count的时候,如果直接通过结构体的数据获取就会有异常。比如:
MYSQL_RES *res = NULL;
res = mysql_store_result(pMySql);
std::cout << res->field_count;
得到的字段数量总是这个值:2954294976,而这样获得的字段就是正确的:
std::cout << mysql_num_fields(res);
而且这个异常只在linux上会出现,windows上是正常的。linux是64位的centos。
看了mysql源码mysql_num_fields的实现:
unsigned int STDCALL mysql_num_fields(MYSQL_RES *res)
{
return res->field_count;
}
它返回的就是结构体里的字段。然后我自己写了一个函数:
unsigned int my_mysql_num_fields(MYSQL_RES *res)
{
return res->field_count;
}
std::cout << my_mysql_num_fields(res);
得到的值也是异常的值 :2954294976。为什么自己写的函数就不行,调用库函数就ok,而且为什么获得的field_count会不对,苦思不得其解啊,求大神帮助!
...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
w195438178 2014-03-04
  • 打赏
  • 举报
回复
引用 3 楼 yiyitao8341 的回复:
[quote=引用 2 楼 w195438178 的回复:] [quote=引用 1 楼 yiyitao8341 的回复:] 你是不是包含的库的头文件路径不对? 我也碰到过在windows下运行正常, 但到linux下就出错的问题, 不过我用的是connector-c++, 我不知道connector-c的目录结构怎样的, 不过都试试, 应该可以的
那你解决这个问题了吗?[/quote] 当然解决了啊[/quote] 怎么解决的?
四零四 2014-03-03
  • 打赏
  • 举报
回复
引用 2 楼 w195438178 的回复:
[quote=引用 1 楼 yiyitao8341 的回复:] 你是不是包含的库的头文件路径不对? 我也碰到过在windows下运行正常, 但到linux下就出错的问题, 不过我用的是connector-c++, 我不知道connector-c的目录结构怎样的, 不过都试试, 应该可以的
那你解决这个问题了吗?[/quote] 当然解决了啊
w195438178 2014-02-27
  • 打赏
  • 举报
回复
引用 1 楼 yiyitao8341 的回复:
你是不是包含的库的头文件路径不对? 我也碰到过在windows下运行正常, 但到linux下就出错的问题, 不过我用的是connector-c++, 我不知道connector-c的目录结构怎样的, 不过都试试, 应该可以的
那你解决这个问题了吗?
四零四 2014-01-24
  • 打赏
  • 举报
回复
你是不是包含的库的头文件路径不对? 我也碰到过在windows下运行正常, 但到linux下就出错的问题, 不过我用的是connector-c++, 我不知道connector-c的目录结构怎样的, 不过都试试, 应该可以的

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧