SashulinMessageBroker:在消息流中调用C++ DLL

一、背景

在现实应用中,算法、核心逻辑为了追求快速高效的运行速度,很多人都采用C++来编写,并打包成动态库供外部使用。SMB针对这种应用场景,提供了DLL组件,实现在消息流中对DLL的动态调用。下实例讲解如何实现DLL as Service。

二、创建例子

1、使用vs2022创建C++ DLL工程

创建过程略过。主要展示.h和.cpp文件中的代码。本例中命令为SashulinDLL.h和SashulinDLL.cpp

SashulinDLL.h中的定义:

包含了add和getValue两个导出函数:

SashulinDLL.cpp中的函数实现:

非常简单的两个导出函数,编译后生成SashulinDLL.dll文件。

注意:DLL编译框架必须与JDK一样,本案例都是64位。

2、使用SMB创建消息流

以下是消息流全貌,只关注两个DLL流即可。

第一个名为DLL1组件,它的重要属性是:

filePath:E:/Sashulin/DLL/SashulinDLL/x64/Debug/SashulinDLL.dll

methodName:add   //这里必须与函数名称一致

parameterNames:a,b //这里必须与函数入参名一致

paramTypes:int,int   //两个入参数的类型

returnType:int     //DLL函数的返回类型

对应的HttpUrlPattern组件的属性:

urlpattern: v1/dll

params:a,b  //这里必须与函数入参名一致

第二个名为DLL2组件,属性如下:

filePath:E:/Sashulin/DLL/SashulinDLL/x64/Debug/SashulinDLL.dll

methodName:getValue   //这里必须与函数名称一致

parameterNames:value //这里必须与函数入参名一致

paramTypes:String  //两个入参数的类型

returnType:String     //DLL函数的返回类型

对应的HttpUrlPattern组件的属性:

urlpattern: v1/dll_str

params:value  //这里必须与函数入参名一致

三、运行效果

使用get调用api,传入a和b两个参数,由DLL运行后返回。

调用DLL2流的返回结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/16649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多旋翼+发电机:国债应急系留照明无人机技术详解

多旋翼发电机技术的应急系留照明无人机是一种集成了先进飞行技术、发电技术和照明技术的无人机系统。这种无人机具有高度的灵活性、移动性和适应性,能够在各种复杂环境下迅速部署,为夜间搜救、救援等应急任务提供高效、可靠的照明支持。 无人机参数&…

融汇11款AI工具构建完美应用

本文将为您介绍25个开源项目,分为上下两篇以便您融汇它们来制作自己的AI应用。人工智能(AI)应用在近年来得到了长足的发展。从语音助手到软件开发,人工智能已在我们的生活中无处不在,并得到了广泛应用。 如您所见&…

构建智慧城市公共服务系统的功能架构设计

随着城市化进程的加速,城市公共服务系统在保障居民生活品质、提升城市管理水平方面扮演着愈发重要的角色。构建智慧城市公共服务系统的功能架构设计至关重要,它不仅需要充分考虑居民需求与城市管理的实际情况,还需要整合先进的科技手段&#…

LINGO:存贮问题

存贮模型中的基本概念 模型: 基本要素: (1)需求率:单位时间内对某种物品的需求量,用D表示。 (2)订货批量:一次订货中,包含某种货物的数量,用 Q表…

【MySQL精通之路】索引优化(2)

目录 1 MySQL如何使用索引 2 主键优化 3 空间索引优化 4 外键优化 5 列索引 6 多列索引 7 验证索引使用情况 8 InnoDB和MyISAM索引统计集合 9 B树索引与哈希索引的比较 9.1 B-树索引特征 9.2 哈希索引特征 10 索引扩展的使用 11 优化器使用生成的列索引 12 不可见…

【C语言】实现贪吃蛇--项目实践(超详细)

前言: 贪吃蛇游戏大家都玩过吧?这次我们要用C语言来亲手制作一个!这个项目不仅能让我们复习C语言的知识,还能了解游戏是怎么一步步做出来的。我们会一起完成蛇的移动、食物的生成,还有碰撞检测等有趣的部分。准备好了…

新计划,不断变更!做自己,接受不美好!猪肝移植——早读(逆天打工人爬取热门微信文章解读)

时间不等人 引言Python 代码第一篇 做自己,没有很好也没关系第二篇结尾 引言 新计划: 早上一次性发几个视频不现实 所以更改一下 待后面有比较稳定的框架再优化 每天早上更新 早到8点 晚到10点 你刚刚好上班或者上课 然后偷瞄的看两眼 学习一下 补充知…

SSM流浪宠物领养系统 毕业设计-附源码 270917

摘 要 流浪宠物一直是影响城市环境与居民生活的一个不可忽略的因素。基于此,本文设计并实现一个流浪宠物领养系统。用户可以通过本系统查看搜索流浪宠物的相关信息、进行领养申请,为其提供爱心帮助。本系统有效地解决了流浪宠物领养工作开展困难等问题&a…

STM32F1之OV7725摄像头·SCCB总线详解(附带源码编写)

STM32F1之OV7725摄像头-CSDN博客 STM32F1之OV7725摄像头像素数据输出时序、FIFO 读写时序以及摄像头的驱动原理详解-CSDN博客 目录 1. 硬件设计 1.1 SCCB 控制相关 1.2 VGA 时序相关 1.3 FIFO 相关 1.4 XCLK 信号 2. 代码设计 2.1 SCCB总线软件实现 2.1.1 宏定…

推荐系统三方参与者

1.信息生产者 信息生产者是指制作和发布网络信息内容的组织或个人。信息生产者的需求链路大致为:发布信息->期待曝光->期待阅读->期待奖励,需求得到满足,持续生产,再次进入链路循环。生产者持续创作的激情和动力很大程度…

go语言内置io包中TreeReader函数的理解和使用示例

在go语言的内置io包中的这个 TreeReader函数,函数原型 func TeeReader(r Reader, w Writer) Reader 从函数原型中看是给他一个Reader, 和一个Writer 然后他给你返回一个Reader, 本文中我们把这个返回的Reader叫做 treeReader, 他是一个很特别的reader…

利用STK分析雷达干扰

利用STK中的radar模块能够进行干扰分析。该模块能够用来确定干扰源(单站雷达、发射源),评估干扰对本机雷达性能的影响。 在分析干扰影响之前,首先设置一简单场景。 1、创建一个名为RadarJam的场景; 2、打开场景的Prop…

上位机图像处理和嵌入式模块部署(f103 mcu运行freertos)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 mcu一般有两个用途,一个是控制,一个是非控制。控制类的应用一般要求实时性比较高,什么时候做什么,都是有严格的时间要求的。而非控制类的应用,则要求实现尽可能多的功能,比如…

spring boot整合j2cache 配置项目全局键标识 帮助定位是哪个项目产生的缓存

我们利用 j2cache 存进 redis的缓存 key 可以加个全局标识 这样 到时看缓存 方便别人看是哪个项目存进去的 例如 这里 我们存入的 book 我们 keys * 查看 就知道是个book 但不知道具体来自那套系统 我们在 j2cache.properties 中加上 redis.namespace 项目全局键标识 我们…

技术分享:深入C++时间操作函数的应用与实践

在软件开发中,时间是无处不在的一个概念,无论是日志记录、定时任务还是用户界面,时间的处理都至关重要。C标准库提供了一套完整的工具来帮助我们处理时间相关的操作。本文将详细介绍几个时间操作函数的使用场景、代码实现以及它们在实际开发中…

42-5 应急响应之日志分析

一、Windows 系统日志排查 1)日志概述 在 Windows 2000 专业版、Windows XP 和 Windows Server 2003 中: 系统日志的位置为 C:\WINDOWS\System32\config\SysEvent.evt安全性日志的位置为 C:\WINDOWS\System32\config\SecEvent.evt应用程序日志的位置为 C:\WINNT\System32\c…

牛客周赛 Round 44VP

1.签到&#xff1a;https://ac.nowcoder.com/acm/contest/82526/A AC代码&#xff1a; #include<bits/stdc.h> using namespace std; int n; int main() {cin>>n;cout<<n/3; } 2.思维&#xff1a;https://ac.nowcoder.com/acm/contest/82526/B 就是判断最…

【漏洞复现】海康威视综合安防管理平台 iSecure Center applyCT fastjson 远程代码执行

0x01 漏洞名称 海康威视综合安防管理平台 iSecure Center applyCT fastjson 远程代码执行 0x02 漏洞影响 0x03 搜索引擎 app"HIKVISION-综合安防管理平台"0x04 漏洞详情 POST /bic/ssoService/v1/applyCT HTTP/1.1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Wi…

NASA数据集——阿尔法喷气式大气实验二氧化碳和甲烷数据

Alpha Jet Atmospheric eXperiment Carbon Dioxide and Methane Data 阿尔法喷气式大气实验二氧化碳和甲烷数据 简介 Alpha Jet Atmospheric eXperiment (AJAX) 是美国国家航空航天局艾姆斯研究中心与 H211, L.L.C. 公司的合作项目&#xff0c;旨在促进对加利福尼亚、内华达…