当前位置:文档之家› CSharp使用DLL进行调用MatLab混编

CSharp使用DLL进行调用MatLab混编

CSharp使用DLL进行调用MatLab混编
Lanix Beavis 2013/1/27
Beijing Normal University, 978109939@
软件配置 (2)
一、生成DLL库 (2)
1. 函数准备 (2)
2. 环境预设 (2)
3. DeploymentTool生成DLL (3)
二、CSharp调用DLL (6)
1. 添加引用 (6)
2. 调用实例 (6)
3. 加载错误 (7)
软件配置
MATLAB:Version 7.11.0.584(R2010b),64-bit(win64)
CSharp:Visual Studio 2010专业版,4.0.30318 RMRel,64-bit(win64)
一、生成DLL库
1. 函数准备
2. 环境预设
3. DeploymentTool生成DLL
点击Desktop->Deployment Tool,点击“here”或->New Project生成新项,此处为M2CTEST.prj 。

点击[Add class]生成指定名称的类,点击[Add files]添加M方法文件作为该类下的方法。

添加类及方法后,点击打包文件,生成的dll文件在M2CTEST\src目录下。

二、CSharp调用DLL
1. 添加引用
启动Visual Stidio新建新项目,此处项目为控制台应用程序ConsoleApplication2。

在ConsoleApplication2中添加项目引用,右键单击“引用”,点击“添加引用”,包括自己生成的DLL和Matlab环境DLL:
M2CTEST\src\M2CTEST.dll
Program Files\MATLAB\R2010b\toolbox\dotnetbuilder\bin\win64\v2.0\MWArray.dll
在Program.cs中添加类引用:
using .Arrays; //用于数据转换
using .Utility; //用于绘图
using M2CTEST; //自己生成的DLL库,调用Matlab函数
2. 调用实例
运行结果如下
3. 加载错误
在运行的时候,如果遇到错误“未能加载文件或程序集“MWArray, Version=2.10.1.0, Culture=neutral, PublicKeyToken=e1d84a0da19db86f”或它的某一个依赖项。

试图加载格式不正确的程序”,是因为Matlab生成的是32位的DLL库,而当前的CSharp平台是64位的。

解决办法是:右键单击ConsoleApplication2->属性->生成->目标平台,选择x64。

相关主题