1 建立动态库,与lua无关,库中的函数和全局变量供luajit调用
mylib.h
#ifdef __cplusplus
extern "C" {
#endif
typedef struct{
int len;
char value[128];
}MY_STR;
typedef int (* FPROC)(MY_STR[32]);
void printmy();
void testAdd();
void testNoHFile();/*如果没有放在extern中,则无法在lua中使用函数。*/
int g_directOpr=0;
#ifdef __cplusplus
}
#endif
mylib.cpp
extern "C"
{
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include "mylib.h"
}
/*全局变量 即使不在头文件声明,也可以直接在lua中直接使用*/
int g_Num=100;
void printmy(){
printf("lib print [%d]\n",g_Num);
}
void testAdd(){
g_Num++;
}
void testNoHFile(){
printf("test no head file \n");
}
/*直接在函数前使用extern C,则可以直接在lua中访问了。不必在头文件中。*/
extern "C" void testNoHFile2