clib_mysql.h,在C++中包含mysql.h头文件,编译时却找不到my_socket类型,是咋回事啊...

当前位置:我的异常网» C++ » 在C++中包含mysql.h头文件,编译时却找不到my_socke

在C++中包含mysql.h头文件,编译时却找不到my_socket类型,是咋回事啊

www.myexceptions.net  网友分享于:2013-04-13  浏览:231次

在C++中包含mysql.h头文件,编译时却找不到my_socket类型,是怎么回事啊?

已经在项目属性中加入了头文件和DLL文件的路径。

原代码如下,请各位高手不吝赐教

dbCon.h:

#ifndef _MYSQLLIB_DBCON_H_

#define _MYSQLLIB_DBCON_H_

#include "mysql.h"

#include

using namespace std;

class DbCon

{

private:

MYSQL * m_mysql;

MYSQL_RES * m_res;

bool m_isQuery; //记录是否是查询操作

public:

DbCon();

~DbCon();

bool Connect(MYSQL * mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port = 0);

bool Execute(const char * strSql, unsigned long lLen);

MYSQL_RES * GetRes();

};

#endif // _MYSQLLIB_DBCON_H_

dbCon.cpp

#include "dbCon.h"

DbCon::DbCon()

{

mysql_init(m_mysql);

m_res = NULL;

m_isQuery = false;

}

DbCon::~DbCon()

{

mysql_close(m_mysql);

}

bool DbCon::Connect(MYSQL * mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port = 0)

{

if(!mysql_real_connect(mysql, host, user, passwd, db, port, NULL, 0))

{

return false;

}

return true;

}

bool DbCon::Execute(const char * strSql, unsigned long lLen)

{

char stFirstWord[10] = {0};

const char * pTemp = strSql;

while(*pTemp++ == ' ');

int i = 0;

while(*pTemp != ' ')

{

stFirstWord[i] = *pTemp;

pTemp++;

}

if(strcmp("select", stFirstWord))

m_isQuery = true;

else

m_isQuery = false;

if(0 != mysql_real_query(m_mysql, strSql, lLen))

{

return false;

}

return true;

}

MYSQL_RES * DbCon::GetRes()

{

if(m_isQuery == false)

{

return NULL;

}

return m_res;

}

test.cpp

#include

#include "dbCon.h"

using namespace std;

int main()

{

return 0;

};

报如下错误:

1>dbCon.cpp

1>e:\db\mysqllib\mysql\include\mysql_com.h(243) : error C2146: 语法错误 : 缺少“;”(在标识符“fd”的前面)

1>e:\db\mysqllib\mysql\include\mysql_com.h(243) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

1>e:\db\mysqllib\mysql\include\mysql_com.h(243) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

1>e:\db\mysqllib\mysql\include\mysql_com.h(427) : error C2065: “SOCKET”: 未声明的标识符

1>e:\db\mysqllib\mysql\include\mysql_com.h(427) : error C2146: 语法错误 : 缺少“)”(在标识符“s”的前面)

1>e:\db\mysqllib\mysql\include\mysql_com.h(428) : error C2059: 语法错误 : “)”

1>e:\db\mysqllib\dbcon.cpp(16) : error C2572: “DbCon::Connect”: 重定义默认参数 : 参数 6

1> e:\db\mysqllib\dbcon.h(18) : 参见“DbCon::Connect”的声明

fd在mysql_com.h中的定义是: my_socket fd;

请各位帮忙看看了,急等答案啊

------解决方案--------------------

哦 这个是因为找不到socket的定义 很好解决的 你在#include前加上#include就可以了

文章评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值