CANOE动态链接库CAPLDLL生成

一、 运行CANoe自带CAPL Demo

1、Demo文件路径:

C:\Users\Public\Documents\Vector\CANoe\Sample Configurations 16.0.145\Programming\CAPLdll\VS 2017 Project

2、Visual Studio运行项目

找到工程文件,运行

项目->属性->C/C++/代码生成中,结构体对齐,改为默认(或许会报错)

平台选择WIN32,64位capl报错cannot open

3、生成DLL

根据配置的路径找到DLL

二、生成自己的DLL文件

1、Visual Studio创建项目

创建inc、src、lib文件夹

2、包含capl所需文件

将capldll的include文件放进inc里,capldll.cpp文件放到src里面

3、添加自己的源文件

在src文件夹中编写自己的代码,右键添加到项目中

4、设置include目录与lib
5、修改capldll.cpp

1)(capldll.cpp,保留class CaplInstanceData的内容,capl的demo可以删除appinit等,)

2)添加自己的头文件,添加自己的函数(格式如下)

void CAPLEXPORT CAPLPASCAL  DemoCom(const void *data, uint32 length, uint8 *digest)
 {
     test(data, length, digest);
 }

3)加入列表

CAPL_DLL_INFO4 table[] = {
{CDLL_VERSION_NAME, (CAPL_FARCALL)CDLL_VERSION, "", "", CAPL_DLL_CDECL, 0xabcd, CDLL_EXPORT },
    {"dlldemo1", (CAPL_FARCALL)DemoCom1,          "CAPL_DLL", "iam test",           'V', 3, "BDC", "\001\000\001",          {"data","length","digest"}},
    {"dlldemo2", (CAPL_FARCALL)DemoCom2,   "CAPL_DLL", "iam test",      'L', 1, "C",   "\001",                  {"cert"}},
    {"dlldemo3", (CAPL_FARCALL)DemoCom3,   "CAPL_DLL", "iam test",      'L', 3, "CDC", "\001\000\001",          {"challenge","challengesize","sign"}},
{0, 0}
};
CAPLEXPORT CAPL_DLL_INFO4* caplDllTable4 = table;
7、cpp和c混合编译
#ifdef __cplusplus
extern "C" {
#endif 
    /*...*/  void md5Compute(const void* data, uint32_t length, uint8_t* digest);
#ifdef __cplusplus
}
#endif 
8、注意事项

CANoe不能在DLL中运行太久(ms级),否则导致overrun或者停止工程运行等情况

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值