cgic程序的编写遇到的问题

cgic程序的编写sql

今天使用cgic库编写了一些cgi的代码,结果在编译的时候出了不少错误,在这里分享出来算是给本身作个笔记,虽然都是小问题可是急需解决的时候仍是很麻烦的.ide

代码结构:函数

login_check.h文件声明spa

login_check.c定义code

login.c使用login_check.h文件声明的函数sqlite

代码以下:简单描述一下,login.c中调用login_check.c实现的函数,其余就不要深究了.blog

/************************************************

* 文件名称: login_check.h

* 文件描述:

* 文件做者:by Wang.J,in 2013.11.14

* 文件版本:

* 修改记录:

*************************************************/

#include <sqlite3.h>

#include <stdio.h>

#include <stdlib.h>

sqlite3 * open_db(const char *path);

void close_db(sqlite3 *db);

int login_check(const char *path, const char *usr, const char *pwd);

 

/************************************************

* 文件名称: login_check.c

* 文件描述:

* 文件做者:by Wang.J,in 2013.11.14

* 文件版本:

* 修改记录:

*************************************************/

#include “login_check.h”

/*==================================================

* 函数名称:

* 函数功能:

* 函数参数:

* 返 回 值:

* 创 建 人:

* 修改记录:

===================================================*/

sqlite3 * open_db(const char *path)

{

……………………

}

/*==================================================

* 函数名称:

* 函数功能:

* 函数参数:

* 返 回 值:

* 创 建 人:

* 修改记录:

===================================================*/

void close_db(sqlite3 *db)

{

……………………………..

}

/*==================================================

* 函数名称:

* 函数功能:

* 函数参数:

* 返 回 值:

* 创 建 人:

* 修改记录:

===================================================*/

int login_check(const char *path, const char *usr, const char *pwd)

{

………………………………..

}

 

/************************************************

* 文件名称: login.c

* 文件描述:

* 文件做者:by Wang.J,in 2013.11.14

* 文件版本:

* 修改记录:

*************************************************/

#include “login_check.h”

…………………………………………………….

/*==================================================

* 函数名称:

* 函数功能:

* 函数参数:

* 返 回 值:

* 创 建 人:

* 修改记录:

===================================================*/

int Search_DataBase(char *username, char *password)

{

return login_check(SQLITE_OPEN, username, password);

}

…………………………………………………………….

 

没什么问题,开始编译it

第一个问题:找不到login_check中声明实现的login_check函数.io

这个是因为编写的Makefile文件中login.c在login_check.c前面的缘由,调整一下顺序能够解决.编译

第二个问题:缺乏cgiMain:看过cgic库的各位明白cgic库在cgic文件中定义了main,而后分别调用各个文件中的cgiMain函数,因此问题也就简单了,加上一个空的cgiMain函数便可,

int cgiMain()

{

return 0;

}

第三个问题:login.c文件中Search_DataBase函数找不到login_check函数,太丧心病狂了,怎么可能?而后我又仔细看了一下cgic的实现,发现使用cgic库以后,每一个文件变得相互独立没有联系了,因此找不到其余文件中定义的函数.因此我最后的解决办法是:将函数的定义与实现所有写入到.h文件,在其余须要使用的文件中直接include这个.h文件.修改后以下:

/************************************************

* 文件名称: login_check.h

* 文件描述:

* 文件做者:by Wang.J,in 2013.11.14

* 文件版本:

* 修改记录:

*************************************************/

#include <sqlite3.h>

#include <stdio.h>

#include <stdlib.h>

sqlite3 * open_db(const char *path)

{

……….实现………………………

}

void close_db(sqlite3 *db)

{

…………………实现…………………………

}

int login_check(const char *path, const char *usr, const char *pwd)

{

…………………….实现……………………………………

}

login.c文件内容不变.

这是我解决这个问题的方法,若是其余大侠有什么更好的解决办法,欢迎指点.谢谢!

本站公众号
   欢迎关注本站公众号,获取更多信息