【问题标题】:Matlab DLL Integration via C++ or VB.NET通过 C++ 或 VB.NET 集成 Matlab DLL
【发布时间】:2017-10-18 08:24:05
【问题描述】:

由于对 dll 库的了解有限,我还没有找到解决问题的方法。 我正在使用 Matlab (R2017a) 通过 dll 集成与设备的通信,该 dll 由制造商提供 (files - Xemo-DLL (64Bit) mit Header-Dateien (2.40))。

据我了解,在 VB 和 VB.NET 包装器旁边,C 中有预编译的 .dll 和 C++ 中的头文件。

问题是:将 dll 集成到 Matlab 中的最佳方法是什么?

A) 我试过 loadlibrary(XemoDll)。它抛出了很多错误,没有找到 iostream。所以我在整个文件中添加了 extern "C" {},这会在每个函数定义中产生新的错误。我必须在哪里插入它?

B) 我尝试添加 VB.NET 库的 NET.addAssembly(path\XemoDll.vb)。有一个包含所有包装函数的模块。 Matlabs 给出错误“缺少装配清单”来源:mscorlib。

【问题讨论】:

  • AFAIK 你必须为 DLL 编写一个 matlab 包装器,这可以做到,例如使用 matlab 中集成的 MEX 编译器。它将 c/C++ 代码编译成可以在 matlab 中使用的函数
  • loadlibrary 本身只支持可以被 c 编译器解析的头文件。 iostream 是 c++ 而不是 c 所以这不能直接工作。编写一个导出纯 c 接口的包装 dll

标签: c++ vb.net matlab dll


【解决方案1】:

我在使用 windows.h 中的 LoadLibrary() 命令加载 Dlls 时发现了 Tutorial,并使其正常工作。

我使用了一个 DllInterface_mex 函数来获取函数名并调用 Dll 中的相应函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多