博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cgic程序的编写遇到的问题
阅读量:7093 次
发布时间:2019-06-28

本文共 2873 字,大约阅读时间需要 9 分钟。

hot3.png

cgic程序的编写

今天使用cgic库编写了一些cgi的代码,结果在编译的时候出了很多错误,在这里分享出来算是给自己做个笔记,虽然都是小问题但是急需解决的时候还是很麻烦的.

代码结构:

login_check.h文件声明

login_check.c定义

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

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

/************************************************* 文件名称: login_check.h* 文件描述:* 文件作者:by Wang.J,in 2013.11.14* 文件版本:* 修改记录:*************************************************/#include 
#include
#include
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);}…………………………………………………………….

 

没什么问题,开始编译

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

这个是由于编写的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 
#include
#include
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文件内容不变.

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

转载于:https://my.oschina.net/u/124452/blog/176396

你可能感兴趣的文章
HTTP协议:签名和证书
查看>>
C#递归生成菜单树
查看>>
8.1.3 链路状态数据库
查看>>
I/O重定向和管道——《Unix/Linux编程实践教程》读书笔记(第10章)
查看>>
华章1-2月份新书简介(2018年)
查看>>
PreparedStatement的用法
查看>>
For多重循环 break continue
查看>>
BaseRecyclerViewAdapterHelper开源项目之点击事件源码学习
查看>>
JAVA解析JSON大全
查看>>
Java基础学习总结(23)——GUI编程
查看>>
让App的运行速度与响应速度趋于一流(iOS)
查看>>
大型网站技术架构(八)网站的安全架构
查看>>
Java基础学习总结(16)——Java制作证书的工具keytool用法总结
查看>>
学习Redis必须了解的N个常识
查看>>
源码配置svn+apache
查看>>
找出数组中唯一重复的数
查看>>
JAVA中sleep()、wait()、yield()、join()方法浅析
查看>>
Linux安裝卡巴斯基
查看>>
Spring(一)——总体介绍
查看>>
搭建简单的DHCP服务 (照着敲就能搭建好)
查看>>