由于之前有些工作确实是可以直接从底层对数据进行读写的,如果采用动态链接库的话应该可以提高效率。
参考资料:
HARRIS对于DLM的官方说明
一个第三方的DLM,用于参考学习
另一个讲DLM的优快云博客,但个人觉得太复杂了
安装路径下该文件夹中所有文件:/idl/external/dlm/*
安装路径下该依赖项头文件:/idl/external/include/idl_export.h
准备文件
模块名.c
:假如你的模块名叫mymodule,则mymodule.c即是用于编译的C源码文件。具体见下方讲解。模块名.dlm
:该文件为/idl/external/dlm/
中复件,用于注册DLM,前五行的参数自己看着格式随便改点就可以,重要的是第六行及之后的文本,具体见下方讲解。{build_win.bat | Makefile}
:(win平台是bat文件,unix平台是Makefile文件。)该文件为/idl/external/dlm/
中复件,用于制作动态链接文件(mymodule.dll/mymodule.so),但这个文件并非通用,需要自己改参数,一是里面的IDL_DIR
为安装路径,二是把里面的testmodule
替换为你的模块名。这个文件并非必需,只是编译动态链接库会更快捷,当然也可以自己制作Makefile文件。
C源码讲解
其实不管是示例的testmodule还是另一篇博客里面都有好些不需要的,我做了很大的精简。
首先要把idl_export.h
加进去。
#include <stdio.h>
#include "idl_export.h"
然后是定义自己在IDL中调用的过程或者函数,我定义的是passfn的过程,将字符串参数打印在屏幕上。
static void passfn