【C#-1】C#调用matlab生成的dll库

matlab打包dll

1、matlab示例程序:

function untitled4(x)z = peaks(x);figuresurf(z)
end

2、输入deploytool打包matlab程序,具体如下:

 3、拷贝

打包成功后,将生成for_redistribution_files_only文件夹中的dll文件拷贝到C#程序lib文件夹下,若没有,新创建一个。

错误解决:

解决方法:将matlab程序改写成一个方法。

C#调用dll

1、添加引用

 MWArray.dll在matlab安装目录..\matlab\toolbox\dotnetbuilder\bin\win64\v4.0下,untitled4.ll与untitled4Native.dll在C#工程lib文件夹下。

2、导入包

using untitled4;
using MathWorks.MATLAB.NET.Arrays;

3、添加button点击事件

private void Button1_Click(object sender, EventArgs e)
{untitled4.Class1 p3 = new untitled4.Class1();p3.untitled4((MWArray)25);
}

完整示例代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using untitled4;
using MathWorks.MATLAB.NET.Arrays;namespace test1
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){}private void Button1_Click(object sender, EventArgs e){untitled4.Class1 p3 = new untitled4.Class1();p3.untitled4((MWArray)25);}}
}

 错误解决1:

解决方法:debug平台改为×64位

 

 错误解决2:

解决方法:matlab程序返回一个数,而C#代码接收的是MWArray数据。

p3.untitled4((MWArray)25);

 

运行结果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/108769.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于HTTP协议的概述

HTTP 的报文大概分为三大部分。第一部分是请求行,第二部分是请求的首部,第三部分才是请求的正文实体。 POST 往往是用来创建一个资源的,而 PUT 往往是用来修改一个资源的。 Accept-Charset,表示客户端可以接受的字符集。防止传过…

Redis常用应用场景

Redis是一款开源的基于内存的键值存储系统,它提供了多种数据结构和丰富的功能,适用于各种不同的应用场景。以下是Redis常用的应用场景: 1.缓存:Redis最常见的用途就是作为缓存。由于Redis存储在内存中,读取速度非常快…

CRC(循环冗余校验码的校验方法)

5个关键点: 1.信息码:即给出要校验的二进制码 2.生成多项式:一般多项式会给,从最高位的指数位数就可以得到有几个校验码;如果没给多项式,肯定会给个多项式二进制码,根据它来推就行(…

Windows环境下Springboot3+Graalvm+Idea 打包成原生镜像 踩坑

https://github.com/oracle/graal/https://github.com/graalvm/graalvm-ce-builds/releases/对应关系graalvm-ce-java17-windows-amd64-X.X.X.zipnative-image-installable-svm-java17-windows-amd64-X.X.X.jar本人使用:graalvm-ce-java17-windows-amd64-23.0.1.zipnative-imag…

多元函数的微分法

目录 复合函数微分法 隐函数微分法 复合函数求导与全微分 隐函数偏导数与全微分 复合函数微分法 复合函数微分法是一种求导方法,用于计算复合函数的导数。 假设有一个复合函数yf(u),其中ug(x),则复合函数微分法可以用于计算y对x的导数。根…

win10win11截图技巧——不用安装其他截图工具或者运行其他截图工具,就可以截图,win10和win11可用

快捷键shift wins可以调出来windows自带的截图工具。 测试了一下win10和win11都可以用。 可以截图的方式有: 1,全屏截图, 2,窗口截图, 3,任意截图, 4,画矩形截图 以下内容来自…

【已解决】您所使用的密钥ak有问题,不支持jsapi服务,可以访问该网址了解如何获取有效密钥。

您所使用的密钥ak有问题,不支持jsapi服务,可以访问该网址了解如何获取有效密钥。详情查看:http://lbsyun.baidu.com/apiconsole/key#。 问题 百度密钥过期 思路 注册成为开发者 如果还没注册百度地图api账号的,点击以后就进入…

如果你想了解远程工作,这篇文章不容错过

大家好,好久不见,我好久都没写原创文章了。 最近周边的越来越多朋友来找我了解远程工作相关的问题,正好这个月也是我远程工作一年半了,所以就写篇文章聊聊关于这块的话题吧。 语言问题 首先远程工作基本分两种团队,一种…

【记录】Truenas scale|Truenas 的 SSH 服务连不上 VScode,终端能连上

一般 Truenas连不上 就只有两种情况: 第一种:用户没对应用户目录。需要去用户管理里面对每个用户设置目录。 第二种情况,服务有个选项没勾选。这时会发现能输入密码但是一点反应都没有,打开details会看到报错channel 3: open fai…

SkyWalking安装部署

一、概念 1、什么是 APM 系统? APM(Application Performance Management)即应用性能管理系统,是对企业系统即时监控以实现对应用程序性能管理和故障管理的系统化的解决方案。应用性能管理,主要指对企业的关键业务应用…

NoSQL之redis持久化(RDB、AOF)

目录 一、Redis高可用 二、Redis持久化 1、持久化的功能 2、Redis的两种持久化 三、RDB 持久化 1、触发条件 1.1 手动触发 1.2 自动触发 1.3 其它自动触发机制 2、执行流程 3、启动时加载RED文件(恢复) 四、Redis的AOF持久化 1、开启AOF 2、执行流程 2.1 命令追加…

每日一博 - 图解进程(Process)和线程(Thread)区别联系

文章目录 概述图解小结 概述 进程(Process)和线程(Thread)是操作系统中管理和执行任务的两个基本概念,它们之间有以下主要区别: 独立性: 进程是独立的执行单位。每个进程有自己的独立地址空间、…