88322f4635c0fc07b40d8ca3847f6f25.png

前言

在汽车这个大行业,每一辆车的量产都需要不同的公司、不同的团队、不同的人去精诚合作,否则无法完成一辆车的上路。但是这个过程中,公司与公司之间、团队与团队之间、人与人之间都会有一些信息需要保密,在这个信息爆炸的时代,如果对信息不加任何保护,那我们无异于赤裸行走在大街上,毫无隐私而言;对于公司和团队而言,那也将逐渐失去核心竞争力;对于测试开发工程师来说,我们属于小众的那一波人,特别是协议测试,常用的都是Vector工具链,在合作过程中,我们的一些源代码是不能给到供应商或者甲方的,那我们如何对我们的代码进行保护呢?今天我们就来聊一下Vector工具链所提供的DLL动态链接库,来给我们的代码加上一层防弹衣。

一、动态链接库的应用场景

1、CAPL节点中的使用

1)此处的使用比较直接,只需要在CAPL的编辑界面中的include下面添加即可如下图:

#include “..\vTESTstudio\capldll.dll”

2)如果需要使用只需要在右下角拖拉对应的函数名称即可使用。

0ad8bf069bd21a54e8188a1a38610809.png

 

2、vTESTstidio工程中的使用

1)添加DLL到工程里边:File -> CANoe Options -> Programming -> CAPL DLL -> CAPL DLLs(Simulation Setup/Test Setup) -> Add(找到dll的所在路径,添加进去)

f6844b6f8d2b0f68803c3c7c10166d96.png

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}

}

a8085321ab8d3dd2bac7ed8c6edd1f0d.png

工程中的调用位置:

7a2822ce32b8c5ddefa3327bd075f3e7.png

DLL中编写:

c94452591a12bb2c859271b5027ccdfd.png

 

2、返回函数值解析:

a8bbeccf7e56a3693ba8fbb469805939.png

3、自定义函数定义格式:

d15d7cf2b2fa220a8af8c4acd84d04eb.png

 

2653599bb1caf6fdba47d6e1eed81339.png

4、编译

检查编译完成后如下方的显示成功生成dll,查找本地生成的dll路径中是否是已经生成的即可,然后按照前面的使用步骤导入到对应的工程中,检查函数是否正确。

8e93388872d46273bfc5d22f20bf9812.png

 


版权声明:本文为weixin_54581097原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_54581097/article/details/127833220