前言
在汽车这个大行业,每一辆车的量产都需要不同的公司、不同的团队、不同的人去精诚合作,否则无法完成一辆车的上路。但是这个过程中,公司与公司之间、团队与团队之间、人与人之间都会有一些信息需要保密,在这个信息爆炸的时代,如果对信息不加任何保护,那我们无异于赤裸行走在大街上,毫无隐私而言;对于公司和团队而言,那也将逐渐失去核心竞争力;对于测试开发工程师来说,我们属于小众的那一波人,特别是协议测试,常用的都是Vector工具链,在合作过程中,我们的一些源代码是不能给到供应商或者甲方的,那我们如何对我们的代码进行保护呢?今天我们就来聊一下Vector工具链所提供的DLL动态链接库,来给我们的代码加上一层防弹衣。
一、动态链接库的应用场景
1、CAPL节点中的使用
1)此处的使用比较直接,只需要在CAPL的编辑界面中的include下面添加即可如下图:
#include “..\vTESTstudio\capldll.dll”
2)如果需要使用只需要在右下角拖拉对应的函数名称即可使用。
2、vTESTstidio工程中的使用
1)添加DLL到工程里边:File -> CANoe Options -> Programming -> CAPL DLL -> CAPL DLLs(Simulation Setup/Test Setup) -> Add(找到dll的所在路径,添加进去)
2)打开vTESTstudio工程,在右下角拖拽需要用的函数即可。(后续不清楚可私信我加图说明)
3、Python中的使用
这里我想python大神不需要我在这里赘述了。
二、CAPL DLL架构函数介绍
1、list of exported function
此处主要用于在CANoe中调用函数名称或者vTESTstudio中使用的函数名称,下面是对应关系
CAPL_DLL_INFO4 table[] = {
{CDLL_VERSION_NAME, (CAPL_FARCALL)appInit, “CAPL_DLL”, “This
function will initialize all callback function in the CAPLDLL”, ‘V’, 1, “D”, “”, {“handle”}}
{0, 0}
}
工程中的调用位置:
DLL中编写:
2、返回函数值解析:
3、自定义函数定义格式:
4、编译
检查编译完成后如下方的显示成功生成dll,查找本地生成的dll路径中是否是已经生成的即可,然后按照前面的使用步骤导入到对应的工程中,检查函数是否正确。