人生就是博官网

若何使用TSMaster挪用表部DLL/LIB法式

Table of Contents

概要:

在用户自界说开发过程中,常;嵊龅奖匾灿帽聿 DLL/LIB 法式文件的需要,这些文件可能是用户自己编写的,也可能是其它供给商提供的 。TSMaster 支持挪用表部二进造法式库,但必须通过肯定的步骤进行封装 。本节内容以挪用 NI 公司的 TDMS 文件纪录法式为例,演示封装 DLL 库的步骤,而 LIB 库的使用与 DLL 类似,用户能够在 visual studio工程中执行类似操作实现 。

一、获取表部法式库

NI 公司的 TDMS 库能够通过此链接下载,对于表部库的使用,请把稳以下限度:

1. 鄙人载表部法式库的过程中,请把稳颁布法式库的使用和谈,人生就是博官网公司仅提供表部法式库的使用环境,不为违反表部库使用和谈的行为掌管;

2. 表部库被 TSMaster 载入后,即成为了主法式的一部门,若是表部库产生了崩溃/内存溢出等行为,会导致 TSMaster 法式不不变或崩溃,此时必要沉新打开软件并卸载有问题的表部库;

3. TSMaster 仅支持 32bit-msvc 版本的表部库,请使用相宜版本的 DLL/LIB 文件,不然会导致编译过程犯错 。

(在附件的“tdms_example\TDM C DLL”目录下,能够找到解压后的 TDMS 表部库有关文件 。)

二、筹备表部库挪用模板

该模板能够从 TSMaster 法式中拷贝,通过 援手->api 例程-> Mini Program SDK 目录下名为 VC++的工程,将该工程复造到其它用户自界说的地位备用即可 。

在附件“tdms_example\tdms_sdk”能够看到为 TDMS 职能筹备的工程 。

TSMaster挪用表部DLL/LIB法式


三、编纂模板并天生DLL

无论表部库是 DLL 还是 LIB,或者两者均有,都能够在模板工程中被挪用 。必要把稳的是,为了可能使得 TSMaster 可能正学问别,用户在筹备模板工程过程中,除了实现自己的逻辑表,还必要提供函数的注解,参数注明等信息 。具体步骤能够打开默认模板文件,在全局搜索 fun1 关键字,该函数为一个示例函数,它出现的处所,也就是用户必要增长自界说内容的处所 。

TSMaster挪用表部DLL/LIB法式

如上图所示,能够看到在 MPLibCode.cpp 文件中,实现了 fun1 函数的申明和实现,在 MPLibCodeExtern.cpp 文 件 中 , 向 dll 管 理 模 板 注 册 了 函 数 fun1 的 存 在 , 在 TSMasterBaseSource.cpp 文件中,向 dll 治理模板注册了 fun1 函数的有关参数信息 。

在集成 TDMS 职能过程中,首先必要将编译过程必要的 h 文件和 lib 文件拷贝到工程目录下,并在工程链接器中将 LIB 文件作为输入 。对于表部函数,例如 TDMS 库自带的DDC_CreateFile 函数,在模板中使用一个新的函数进行封装,将其定名为 tdms_CreateFile 。只管 LIB 文件的函数能够直接导出,但通常建议新建一个函数对它进行封装,一是能够统一函数的名称,便于用户分辨,而是所有 API 的函数返回值必须为 int 类型,若是原生表部库不是该返回类型,则必须通过传递指针等方式获取返回值,此时必须通过封装的大局使用 。

TSMaster挪用表部DLL/LIB法式

TDMS 其它的函数封装过程请参考示例工程,请务必把稳封装函数代码和函数注册代码必要匹配,能力正确工作 ;诟媚0,在 Debug/Release-x86 模式下,能够天生所需的“tdms_sdk.dll” 。

四、在TSMaster中挪用模板DLL

为了在 TSMaster 中挪用“tdms_sdk.dll”,能够将该 dll 直接拖入,或者通过仿真->幼法式库->加载的方式载入,如下图所示,直接加载会失败,这是由于模板 dll 依赖了 TDMS运行时 DLL 文件,依赖文件在“tdms_example\TDM C DLL\dev\bin\32-bit”目录下,由 NI公司提供,将所有文件拷贝到 TSMaster 工程\Plugins\Dependencies 目录下(这个目录必要手动创建,默认 TSMaster 不会创建),再载入模板 dll,即可正确载入 。

TSMaster挪用表部DLL/LIB法式

打开示例工程“tdms_example\tdms_example”,在测试系统的第一条用例,为 TDMS文件天生测试代码 。用户也能够新建幼法式来挪用,两者在操作上没有区别,都需先在属性窗口中,勾选所需表部库,而后在剧本法式中挪用所需函数 。如下图所示,剧本运行后会在 D 盘根目录下创建一个示例 TDMS 文件 。

TSMaster挪用表部DLL/LIB法式

直接运行该剧本,能够发现法式可能运行但并未按需创建 TDMS 文件,通过运行纪录文件查看谬误新闻,能够看到提醒未能打开存储设备 。这个问题是 TDMS 库所特有的,由于它的依赖文件中,除了 dll 表,还蕴含一个名为 DataModels 的文件夹,TSMaster 在使用“tdms_example\Plugins\Dependencies”目录下的依赖文件时,不会对文件夹进行关联,因而必要手动把该文件夹复造到 TSMaster 装置法式目录,例如“C:\ProgramFiles(x86)\TOSUN\TSMaster\bin” 。有些表部库只有 dll 依赖,则不必要手动复造操作 。

TSMaster挪用表部DLL/LIB法式

解决依赖的文件夹后,即可正确天生 TDMS 文件 。用户能够参考以上过程,实现自己的逻辑 。整个过程必要对 visual stuido 环境具备肯定相识,如有不明显的处所,请参考示例工程 。

五、在TSMaster中调试模板DLL

在使用模板 dll 过程中,不成预防存在调试过程 。用户能够批改模板 visual stuido 中项目属性->通例->输出目录,将 dll 的目录输出到调试使用的工程钟装MPLibrary”目录下 。例如将“tdms_example”示例中 dll 天生到“tdms_example\tdms_example\MPLibrary”下,而后先运行 TSMaster 工程,再启动 visual stuido 调试职能 。调试过程与幼法式调试步骤一致,能够参考幼法式的调试过程 。

近期文章
×
×

产品入口: 产品增长到购物车

【网站地图】