使用的平台是matlab2016b 64位和VS2015社区版
1、打开VS,新建项目
第一步:选择Win32下的win32项目,命名为xxx,此处命名为wwy,确定。(不是选择的win32控制台应用程序。选错了,下面的就不要看了)
第二步:应用程序类型,选择DLL,附加选项选择空项目,点击完成。
因为matlab是64位,所以调试工具也选择64位。
第三步:在源文件里面新建一个模块定义文件.def,文件的名称与项目,C文件名称一致。
更改.def的内容为
在源文件里面新建一个文件.c,文件的名称与项目,C文件名称一致。
.c文件的编写具体查看mexFunction函数的使用方法。
第四步:配置项目属性
平台选择x64,常规项中的目标文件扩展名改为.mexw64。如图
VC++目录中可执行文件添加:
添加过.c文件后会出现c/c++,附加包含目录和上面相同。
在链接器->常规->附加库目录中添加: C:\Program Files\MATLAB\R2016b\extern\lib\win64\microsoft
输入->附加依赖项添加libmx.lib;libmex.lib;libmat.lib;如图
在添加过.def文件后,模块定义文件处自动会显示xxx.def。
至此,项目配置完成。
生成.mexw64文件。所在位置在红色框中标出。
如果在生成mex文件时出现"warning LNK4017: // 语句不支持目标平台;已忽略"或在MATLAB中出现“MEX-file 'E:\。。。\wwy.mexw64' 无效”错误,则说明定义的.def文件出错。
首先注意1:不能将.c或其他后缀名文件改为.def文件。必须按上述方法新建模块定义文件,
2:定义文件中有拼写错误。
matlab与C混合编程调试
1.编好函数,生成mexw64文件,放在与matlab .m文件的同一个文件夹中。
2.打开vs,选择“调试”->“附加到进程”->选择MATLAB.exe
3.设置断点(此时断点可能显示为空心+叹号,无视它,继续)
4.在matlab中,运行程序即可。这时候可以发现vs中程序运行到了断点处。
5.over
参考文章网址:https://wenku.baidu.com/view/83ba65b880c758f5f61fb7360b4c2e3f57272590.html