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.pswp.cn/bicheng/16649.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16649.shtml
英文地址,請注明出處:http://en.pswp.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;旨在促進對加利福尼亞、內華達…