Mudos扩展efunc,packages方式

Mudos扩展efunc,packages方式

首先packages目录建好C文件

我们这里测试了一个mongodb的

mongodb_spec.c

mongodb.h

mongodb.c

这里具体的代码可以参考packages目录下的其他efunc的结构,一样就行了

mongodb_spec.c 是定义导出函数的

为了可以控制自己开发的efunc是否被启用还需要到option.h 去定义个宏 我这里用的是#define PACKAGE_MONGODB

然后重新编译一下edit_source 就在其他地方自动生成想关联的导出数据了,被自动生成的几个文件efun_protos.h efunction.h opcodes.h

然后就可以在mongodb.c编写代码了

mongodb.c的代码

#ifdef LATTICE

#else
#include "../std.h"
#include "../lpc_incl.h"
#include "../debug.h"
#include "../comm.h"
#endif

#ifdef PACKAGE_MONGODB

#ifdef F_MGDB_CONNECT
void
f_mgdb_connect PROT((void))
{
    int fd, num_arg = st_num_arg;
   // svalue_t *arg = sp - 1;
    char str[] = {"char"};

     debug_message(" <f_mgdb_connect> port %d, %s  string2:%s %s 
", (sp-2)->u.number, str,(sp-1)->u.string,sp->u.string);

    pop_n_elems(num_arg);
    push_malloced_string("test!!");
 
  
}
#endif

#endif
原文地址:https://www.cnblogs.com/cfas/p/11747657.html