第三方库增加帮助
modProjects 文件夹下存放了所有的第三方库, 库的命名应该以 langX-[Name] 的方式来定义
新增库工程,或者类文件的时候 需要自己添加cmake
的编译配置文件 库工程应该生成出一个动态库。
比如, 新增一个JSON库的时候。 新建一个工程叫做 langX-Json 建立两个文件夹, include 和 source include 文件夹存放一些 .h 头文件 source 文件夹存放一些 .cpp 实现文件 建立一个 makefile 脚本
使 langX-Json 项目 依赖 langX 项目
新增 两个文件 JsonModule.h
和JsonModule.cpp
JsonModule.h
示例代码
需要定义一个 类 继承 X3rdModule 类, 表示这是一个langX的第三方库 需要实现 init 和 unload 两个方法
需要在 JsonModule.cpp
文件内实现这样一个方法 示例如下:
langX 内部会调用 这个mod 的init 方法来初始化他
完成上述操作之后 编译出一个 .so 动态库 在你的 langX.properties 文件里面添加 一行 JSON=json.so
并且将你生成的 .so 库赋值到 LIB_DIR 文件夹下 启动 langX ,应该就会自动加载了你写的第三方库
修改/扩充第三方库的指南
langX 内存在命名空间的说法, 一般一个第三方库都会新建一个命名空间来存放他的类。 命名空间的含义就相当于 java 里面的包, c# 里面的命名空间。
比如
XNameSpace *space = state->getNameSpaceOrCreate("langX.json");
这行代码就会 找到,或者新建一个叫做 langX.json 的命名空间
这两行代码就是声明一个叫做 JsonObject 的类 然后将该类注册到 langX.json 命名空间里面
在脚本里面使用的时候使用下面代码 ref langX.json.JsonObject ;
就可以引用这个第三方的类了。 ref 语句相当于 java 的import , c#的 using 吧。
如何给自定义的类添加 属性和方法 示例代码:
基本上就是这样, 更深层次的逻辑需要自己考虑和实现了。 这是使用c++ 写第三方库的指南 。
Last updated
Was this helpful?