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文件目录下新建一个bat文件,内容为:(路径为你机器上实际路径)

 X:\...\DXE8\bin\bcc32 -c -nBCCOBJ -IX:\...\DXE8\Include;X:\...\DXE8\Include\Windows\crtl rt_nonfinite.c
 X:\...\DXE8\bin\bcc32 -c -nBCCOBJ -IX:\...\DXE8\Include;X:\...\DXE8\Include\Windows\crtl rtGetInf.c
 X:\...\DXE8\bin\bcc32 -c -nBCCOBJ -IX:\...\DXE8\Include;X:\...\DXE8\Include\Windows\crtl rtGetNaN.c
 X:\...\DXE8\bin\bcc32 -c -nBCCOBJ -IX:\...\DXE8\Include;X:\...\DXE8\Include\Windows\crtl test.c
 X:\...\DXE8\bin\bcc32 -c -nBCCOBJ -IX:\...\DXE8\Include;X:\...\DXE8\Include\Windows\crtl test_initialize.c
 X:\...\DXE8\bin\bcc32 -c -nBCCOBJ -IX:\...\DXE8\Include;X:\...\DXE8\Include\Windows\crtl test_terminate.c


 pause


 保存

 在同目录下建立 BCCOBJ 目录

 运行bat文件


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

步骤2结束。


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

在Delphi中引用这些 obj 文件,就可以使用了。


{$LINK bccobj\test_initialize.obj}
{$LINK bccobj\test_terminate.obj}
{$LINK bccobj\test.obj}
{$LINK bccobj\rt_nonfinite.obj}
{$LINK bccobj\rtGetInf.obj}
{$LINK bccobj\rtGetNaN.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结束。



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dbyoung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值