函数未定义

时间:2014-05-09 05:20:27

标签: c database

我在C项目中工作。我需要从一个简单的访问数据库中检索数据。我使用此链接中提供的说明

http://msdn.microsoft.com/en-us/library/office/ff965871(v=office.14).aspx#DataProgrammingWithAccess2010_DirectODBCExample

我使用Direct ODBC连接数据库,因为我使用的是ANSI C.我在项目中使用给定的代码作为函数,并在main函数中调用它。我也在主要包括(sqlext.h)。考虑到某些功能的声明,我有17个错误。

例如:

1-代码行:

rc = SQLAllocEnv(&hEnv);

我收到了错误消息:

error: undefined reference to 'SQLAllocEnv@4'

2-代码行:

rc = SQLAllocConnect(hEnv, &hDbc);

我收到了错误消息:

error: undefined reference to 'SQLAllocConnect@8'

等等。我错过了另一个图书馆还是其他什么?考虑到我的操作系统是Windows 7 64位,我使用microsoft access 2010以及Code :: Blocks

3 个答案:

答案 0 :(得分:0)

这些是windows types。您必须在源代码顶部#include <windows.h>使用它们。

这假设您正在使用Windows,当然。如果不是,你将不得不使用正确的c对应物:

  • unsigned long代替ULONG
  • unsigned short代替USHORT

我认为没有任何理由在已经不必要的typedefs集合中添加额外级别的别名混淆,所以除非你有充分的理由,否则我建议你直接使用windows类型。

答案 1 :(得分:0)

您需要将odbc32.lib链接到您的应用中。

答案 2 :(得分:0)

您可能想要添加<sql.h>, <sqltypes.h>, <sqlext.h> and <windows.h>之类的标头文件。您还需要将代码放在main()函数中。