Delphi 如何使用 Matlab 的 .m文件?

步骤:
  1、在 matlab 中,将 .m 文件编译成 .c 文件;
  2、用 bcc32 编译 .c 文件,得到 obj 文件;
  3、在 Delphi 中,调用 obj 文件;

 步骤1、在 matlab 中,将 .m 文件编译成 .c 文件

  a).编写test.m文件

      function [c,d] = test(a,b)
      c = a + b;
      d = a * b;

  b).运行matlab2014a,在工作界面输入coder,在Matlab Coder Project 新建工程对话框中输入工程名称 test

  

在窗体右侧的工程中,添加test.m文件到工程中,


添加完test.m文件以后,选择函数输入的参数类型:

切换到 Build 页,进行设置

最后点击编译。

会在你的工程目录下生成.c文件。

步骤1结束。

步骤2、用 bcc32 编译 .c 文件,得到 obj 文件

 在.c文件目录下新建1个bat文件,内容为:(路径为你机器上实际路径)

 X:…DXE8incc32 -c -nBCCOBJ -IX:…DXE8Include;X:…DXE8IncludeWindowscrtl rt_nonfinite.c
 X:…DXE8incc32 -c -nBCCOBJ -IX:…DXE8Include;X:…DXE8IncludeWindowscrtl rtGetInf.c
 X:…DXE8incc32 -c -nBCCOBJ -IX:…DXE8Include;X:…DXE8IncludeWindowscrtl rtGetNaN.c
 X:…DXE8incc32 -c -nBCCOBJ -IX:…DXE8Include;X:…DXE8IncludeWindowscrtl test.c
 X:…DXE8incc32 -c -nBCCOBJ -IX:…DXE8Include;X:…DXE8IncludeWindowscrtl test_initialize.c
 X:…DXE8incc32 -c -nBCCOBJ -IX:…DXE8Include;X:…DXE8IncludeWindowscrtl test_terminate.c

 pause

 保存

 在同目录下建立 BCCOBJ 目录

 运行bat文件

 在 BCCOBJ目录下,将会生成6个obj文件。

步骤2结束。


步骤3、在 Delphi 中,调用 obj 文件

在Delphi中援用这些 obj 文件,就能够使用了。


{$LINK bccobj est_initialize.obj}
{$LINK bccobj est_terminate.obj}
{$LINK bccobj est.obj}
{$LINK bccobjt_nonfinite.obj}
{$LINK bccobjtGetInf.obj}
{$LINK bccobjtGetNaN.obj}


定义要使用的函数:

procedure _test_initialize(); cdecl; external;
procedure _test_terminate(); cdecl; external;
procedure _test(const a, b: Integer; var c, d: Integer); cdecl; external;

调用

var
a, b: Integer;
begin
_test_initialize();
_test(2, 3, a, b);
_test_terminate();
Caption := Format('%d %d', [a, b]);
end;

步骤3结束。



波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » Delphi 如何使用 Matlab 的 .m文件?

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡