chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用TSMaster調(diào)用外部DLL/LIB程序

上海同星智能科技有限公司 ? 2022-08-16 09:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

調(diào)用外部DLL/LIB程序

在用戶自定義開發(fā)過程中,常常會遇到需要調(diào)用外部 DLL/LIB 程序文件的需求,這些文件可能是用戶自己編寫的,也可能是其它供應(yīng)商提供的。TSMaster 支持調(diào)用外部二進(jìn)制程序庫,但必須通過一定的方法進(jìn)行封裝。本節(jié)內(nèi)容以調(diào)用 NI 公司的 TDMS 文件記錄程序為例,演示封裝 DLL 庫的方法,而 LIB 庫的使用與 DLL 類似,用戶可以在 visual studio工程中執(zhí)行類似操作實現(xiàn)。

一 獲取外部程序庫

NI 公司的 TDMS 庫可以通過此鏈接下載,對于外部庫的使用,請注意以下限制:

1. 在下載外部程序庫的過程中,請注意發(fā)布程序庫的使用協(xié)議,同星公司僅提供外部程序庫的使用環(huán)境,不為違反外部庫使用協(xié)議的行為負(fù)責(zé);

2. 外部庫被 TSMaster 載入后,即成為了主程序的一部分,如果外部庫發(fā)生了崩潰/內(nèi)存溢出等行為,會導(dǎo)致 TSMaster 程序不穩(wěn)定或崩潰,此時需要重新打開軟件并卸載有問題的外部庫;

3. TSMaster 僅支持 32bit-msvc 版本的外部庫,請使用合適版本的 DLL/LIB 文件,否則會導(dǎo)致編譯過程出錯。

(在附件的“tdms_example\TDM C DLL”目錄下,可以找到解壓后的 TDMS 外部庫相關(guān)文件。)

二 準(zhǔn)備外部庫調(diào)用模板

該模板可以從 TSMaster 程序中拷貝,通過 幫助->api 例程-> Mini Program SDK 目錄下名為 VC++的工程,將該工程復(fù)制到其它用戶自定義的位置備用即可。

在附件“tdms_example\tdms_sdk”可以看到為 TDMS 功能準(zhǔn)備的工程。

f610462a-1af7-11ed-9ade-dac502259ad0.png

三 編輯模板并生成DLL

無論外部庫是 DLL 還是 LIB,或者兩者均有,都可以在模板工程中被調(diào)用。需要注意的是,為了能夠使得 TSMaster 能夠正常識別,用戶在準(zhǔn)備模板工程過程中,除了實現(xiàn)自己的邏輯外,還需要提供函數(shù)的注釋,參數(shù)說明等信息。具體方法可以打開默認(rèn)模板文件,在全局搜索 fun1 關(guān)鍵字,該函數(shù)為一個示例函數(shù),它出現(xiàn)的地方,也就是用戶需要添加自定義內(nèi)容的地方。

f63a89ee-1af7-11ed-9ade-dac502259ad0.png

如上圖所示,可以看到在 MPLibCode.cpp 文件中,實現(xiàn)了 fun1 函數(shù)的聲明和實現(xiàn),在 MPLibCodeExtern.cpp 文 件 中 , 向 dll 管 理 模 板 注 冊 了 函 數(shù) fun1 的 存 在 , 在 TSMasterBaseSource.cpp 文件中,向 dll 管理模板注冊了 fun1 函數(shù)的相關(guān)參數(shù)信息。

在集成 TDMS 功能過程中,首先需要將編譯過程需要的 h 文件和 lib 文件拷貝到工程目錄下,并在工程鏈接器中將 LIB 文件作為輸入。對于外部函數(shù),例如 TDMS 庫自帶的DDC_CreateFile 函數(shù),在模板中使用一個新的函數(shù)進(jìn)行封裝,將其命名為 tdms_CreateFile。盡管 LIB 文件的函數(shù)可以直接導(dǎo)出,但通常建議新建一個函數(shù)對它進(jìn)行封裝,一是可以統(tǒng)一函數(shù)的名稱,便于用戶區(qū)分,而是所有 API 的函數(shù)返回值必須為 int 類型,如果原生外部庫不是該返回類型,則必須通過傳遞指針等方式獲取返回值,此時必須通過封裝的形式使用。

f66812b0-1af7-11ed-9ade-dac502259ad0.png

TDMS 其它的函數(shù)封裝過程請參考示例工程,請務(wù)必注意封裝函數(shù)代碼和函數(shù)注冊代碼需要匹配,才能正確工作?;谠撃0澹?Debug/Release-x86 模式下,可以生成所需的“tdms_sdk.dll”。

四 在TSMaster中調(diào)用模板DLL

為了在 TSMaster 中調(diào)用“tdms_sdk.dll”,可以將該 dll 直接拖入,或者通過仿真->小程序庫->加載的方式載入,如下圖所示,直接加載會失敗,這是由于模板 dll 依賴了 TDMS運行時 DLL 文件,依賴文件在“tdms_example\TDM C DLL\dev\bin\32-bit”目錄下,由 NI公司提供,將所有文件拷貝到 TSMaster 工程\Plugins\Dependencies 目錄下(這個目錄需要手動創(chuàng)建,默認(rèn) TSMaster 不會創(chuàng)建),再載入模板 dll,即可正確載入。

f6905180-1af7-11ed-9ade-dac502259ad0.png

打開示例工程“tdms_example\tdms_example”,在測試系統(tǒng)的第一條用例,為 TDMS文件生成測試代碼。用戶也可以新建小程序來調(diào)用,兩者在操作上沒有區(qū)別,都需先在屬性窗口中,勾選所需外部庫,然后在腳本程序中調(diào)用所需函數(shù)。如下圖所示,腳本運行后會在 D 盤根目錄下創(chuàng)建一個示例 TDMS 文件。

f6c610a4-1af7-11ed-9ade-dac502259ad0.png

直接運行該腳本,可以發(fā)現(xiàn)程序能夠運行但并未按需創(chuàng)建 TDMS 文件,通過運行記錄文件查看錯誤消息,可以看到提示未能打開存儲設(shè)備。這個問題是 TDMS 庫所特有的,因為它的依賴文件中,除了 dll 外,還包含一個名為 DataModels 的文件夾,TSMaster 在使用“tdms_example\Plugins\Dependencies”目錄下的依賴文件時,不會對文件夾進(jìn)行關(guān)聯(lián),因此需要手動把該文件夾復(fù)制到 TSMaster 安裝程序目錄,例如“C:\ProgramFiles(x86)\TOSUN\TSMaster\bin”。有些外部庫只有 dll 依賴,則不需要手動復(fù)制操作。

f6fe3d9e-1af7-11ed-9ade-dac502259ad0.png

解決依賴的文件夾后,即可正確生成 TDMS 文件。用戶可以參考以上過程,實現(xiàn)自己的邏輯。整個過程需要對 visual stuido 環(huán)境具備一定了解,如有不清楚的地方,請參考示例工程。

五 在TSMaster中調(diào)試模板DLL

在使用模板 dll 過程中,不可避免存在調(diào)試過程。用戶可以修改模板 visual stuido 中項目屬性->常規(guī)->輸出目錄,將 dll 的目錄輸出到調(diào)試使用的工程中“MPLibrary”目錄下。例如將“tdms_example”示例中 dll 生成到“tdms_example\tdms_example\MPLibrary”下,然后先運行 TSMaster 工程,再啟動 visual stuido 調(diào)試功能。調(diào)試過程與小程序調(diào)試方法一致,可以參考小程序的調(diào)試過程。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • dll
    dll
    +關(guān)注

    關(guān)注

    0

    文章

    120

    瀏覽量

    46917
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Keil MDK生成LIB庫及使用LIB

    問題引出:為什么要做成lib庫? 1、不想將自己寫的源代碼公開,但是同時庫文件又需要讓別人能夠正常調(diào)用,那封裝成lib的格式就是一個方法。 2、編譯某些工程文件時非常耗時,像ST官方的庫時,由于文件
    發(fā)表于 01-22 07:17

    matlab調(diào)用dll動態(tài)庫函數(shù),死機(jī)問題,如何強(qiáng)行跳出?

    matlab調(diào)用dll動態(tài)庫中的函數(shù),例如圖莫斯,發(fā)送數(shù)據(jù)時,經(jīng)常會卡死,是否有辦法限制時間,比如3秒,沒有回應(yīng),就強(qiáng)行結(jié)束函數(shù)調(diào)用。執(zhí)行后續(xù)邏輯。
    發(fā)表于 12-31 10:14

    labview調(diào)用pylon庫函數(shù)失敗

    在labview中去調(diào)用pylon庫函數(shù)。labview2018(32位),pylon(202506),ni vas,ni vdm均安裝。dll文件為runtime文件下win32
    發(fā)表于 12-11 13:20

    我用matlab的coder 封裝了一個c語言的dll, 但是在用labview調(diào)用時,會出現(xiàn)識別不到庫的問題,有大神遇到過嗎

    我之前用coder編譯過簡單的加減法,調(diào)用沒有問題: 但是后面封裝了個復(fù)雜點的函數(shù),就會出現(xiàn)問題,自己驗證過,函數(shù)本身肯定是沒問題的。 中間自己用matlab調(diào)用dll測試,也是沒問題的,有大神指導(dǎo)怎么解決嗎
    發(fā)表于 11-14 11:25

    深入了解系統(tǒng)調(diào)用API:探索操作系統(tǒng)底層的關(guān)鍵接口

    一、前言 為什么用戶程序不能直接訪問系統(tǒng)內(nèi)核模式提供的服務(wù)? 在linux中,將程序的運行空間分為內(nèi)核空間與用戶空間(內(nèi)核態(tài)和用戶態(tài)),在邏輯上它們之間是相互隔離的,因此用戶程序不能訪問內(nèi)核數(shù)據(jù)
    的頭像 發(fā)表于 11-03 09:20 ?851次閱讀

    軟件更新 | TSMaster 9-10月版本發(fā)布:TAC腳本進(jìn)階,小程序易用性大幅提升

    為持續(xù)賦能用戶的研發(fā)與測試工作,TSMaster正式發(fā)布2025年9-10月功能更新。本次版本聚焦于核心自動化能力的強(qiáng)化與用戶體驗的優(yōu)化,重點帶來了TAC腳本全面進(jìn)階、小程序易用性升級、API更新
    的頭像 發(fā)表于 10-31 20:04 ?1566次閱讀
    軟件更新 | <b class='flag-5'>TSMaster</b> 9-10月版本發(fā)布:TAC腳本進(jìn)階,小<b class='flag-5'>程序</b>易用性大幅提升

    載譽而歸 | 同星智能TSMaster軟件項目榮膺“AITX領(lǐng)航創(chuàng)新技術(shù)”殊榮

    10月21日-24日,為期四天的第三十二屆中國汽車工程學(xué)會年會暨展覽會(SAECCE2025)在重慶科學(xué)會堂圓滿落幕。同星智能憑借“汽車電子基礎(chǔ)工具鏈-TSMaster軟件”項目,從眾多前沿技術(shù)中
    的頭像 發(fā)表于 10-25 10:08 ?788次閱讀
    載譽而歸 | 同星智能<b class='flag-5'>TSMaster</b>軟件項目榮膺“AITX領(lǐng)航創(chuàng)新技術(shù)”殊榮

    軟件更新 | TSMaster 7-8月新功能來了!你升級了嗎?

    為持續(xù)賦能汽車電子研發(fā),TSMaster在2025年夏季再度升級。TSMaster軟件7-8月版本重磅推出了安全管理功能增強(qiáng)、IOAPI優(yōu)化,并正式釋放了RPC/IP與EthernetPDURBS
    的頭像 發(fā)表于 09-12 20:03 ?2186次閱讀
    軟件更新 | <b class='flag-5'>TSMaster</b> 7-8月新功能來了!你升級了嗎?

    關(guān)于LABVIEW 生成EXE后 動態(tài)調(diào)用外部VI的問題

    ADD.VI :是我需要調(diào)用的VI 應(yīng)用程序.EXE :是我項目里面把 \"調(diào)用DLL.VI\" 生成的exe文件 我沒有編譯exe前去調(diào)用
    發(fā)表于 07-30 14:22

    軟件更新 | TSMaster 2025.06版來了!AIO/DIO/DDS全面優(yōu)化,體驗再升級

    我們很高興為您帶來TSMaster2025.06版本的更新匯總!本次升級聚焦AIO、DIO、用戶事件、DDS支持、API文檔網(wǎng)頁版等核心功能,并釋放多項新API,全方位優(yōu)化軟件性能、增強(qiáng)靈活性,讓您
    的頭像 發(fā)表于 07-25 20:04 ?1431次閱讀
    軟件更新 | <b class='flag-5'>TSMaster</b> 2025.06版來了!AIO/DIO/DDS全面優(yōu)化,體驗再升級

    告別摸索!TSMaster官方最全學(xué)習(xí)路徑整理

    在汽車電子和總線通信領(lǐng)域,TSMaster已成為工程師們不可或缺的利器。作為一款功能強(qiáng)大的總線分析、仿真、測試和診斷工具,TSMaster廣泛應(yīng)用于CAN、LIN、FlexRay等總線系統(tǒng)的開發(fā)
    的頭像 發(fā)表于 06-13 20:06 ?1402次閱讀
    告別摸索!<b class='flag-5'>TSMaster</b>官方最全學(xué)習(xí)路徑整理

    EtherCAT運動控制卡應(yīng)用開發(fā)教程之Java

    運動控制卡的Java開發(fā)及DLL調(diào)用
    的頭像 發(fā)表于 06-13 14:29 ?996次閱讀
    EtherCAT運動控制卡應(yīng)用開發(fā)教程之Java

    cyusb3014插入usb2.0接口后,軟件調(diào)用cyapi.lib中的哪些函數(shù)完成初始化、讀寫操作?

    cyusb3014,插入usb2.0接口后,軟件調(diào)用cyapi.lib中的哪些函數(shù)完成初始化、讀寫操作?
    發(fā)表于 05-29 07:14

    軟件更新 | TSMaster 202504 版本已上線!三大功能讓車載測試更智能

    車載測試的智能化時代正在加速到來!TSMaster202504版本正式發(fā)布,本次更新聚焦以太網(wǎng)通信與數(shù)據(jù)高效處理,帶來三大核心功能升級—以太網(wǎng)報文信息過濾、XCPonEthernet支持、按時間范圍
    的頭像 發(fā)表于 05-23 20:05 ?1255次閱讀
    軟件更新 | <b class='flag-5'>TSMaster</b> 202504 版本已上線!三大功能讓車載測試更智能

    是否提供適用于CY7C65213 的 Windows 11驅(qū)動程序和 API 庫 (dll)?

    您好,支持, 我對 Infineon(原 Cypress)生產(chǎn)的 USB 串行 IC 有疑問。 是否提供適用于 CY7C65213 的 Windows 11 驅(qū)動程序和 API 庫 (dll
    發(fā)表于 05-15 07:26