posts - 112, comments - 215, trackbacks - 0, articles - 34
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Matlab7.0利用mcc与VC++编程实例

Posted on 2006-12-04 10:25 济公 阅读(4362) 评论(2)  编辑 收藏 引用 所属分类: VCMatlab

1 、启动MATLAB7,新建m文件,输入:

function myfun(n)
t
= 0
:n;
y
=
sin(t);
plot(y);

保存文件为:myfun.m

2 Matlab Command Window 下输入命令:mcc -B csglsharedlib:mylib myfun 生成动态链接库DLLMatlab 会生成一系列文件, 其中mylib.h mylib.lib mylib.dll mylib.ctf是我们这里需要的。

3 、 在VC++中使用Matlab 生成的动态链接库( *.DLL

以上面创建的 TestDllApp 工程为例。将mylib.h mylib.lib mylib.dll mylib.ctf文件拷贝至 TestDllApp 工程目录下并添加入工程。修改 TestDllApp.cpp 文件 :

//  TestDllApp.cpp : Defines the entry point for the console application.

//
#include  " stdafx.h "

#include 
< stdio.h >
#include 
" mylib.h "
#include 
" mclmcr.h "

int  opp( int  n);
void  main( int  argc,  char *
 argv[])
{
    mylibInitialize();
    
double  x = 64
;
    mxArray 
*
t;
    t
= mxCreateDoubleMatrix( 1 , 1
,mxREAL);
    memcpy(mxGetPr(t),
& x, sizeof ( double
));
    mlfMyfun(t);
    mxDestroyArray(t);
    mylibTerminate();
    printf(
" This is a test!\n "
);
    printf(
" %d\n " ,opp( 16
)); 
}

int  opp( int  n) {
    
return  n / 4 * 4 + 4
;
}

4 通过菜单工程/设置,打开工程设置属性页,进入Link页面,在Object/library modules编辑框中,添加文件名libmx.lib libmat.lib libeng.lib

5 、编译运行程序。

Feedback

# re: Matlab7.0利用mcc与VC++编程实例  回复  更多评论   

2007-05-15 15:51 by Favory
沙发!顶一个!

# re: Matlab7.0利用mcc与VC++编程实例  回复  更多评论   

2007-07-04 18:14 by Vagrant
StdAfx.cpp
Linking...
matDlg.obj : error LNK2001: unresolved external symbol _mylibTerminate
matDlg.obj : error LNK2001: unresolved external symbol _mlfMyfun
matDlg.obj : error LNK2001: unresolved external symbol _mylibInitialize
Debug/mat.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.

mat.exe - 4 error(s), 0 warning(s)
只有注册用户登录后才能发表评论。