gpt4 book ai didi

c# - 在 Matlab 中创建共享库(.NET 程序集)并在 C# 中使用它

转载 作者:行者123 更新时间:2023-11-30 20:46:27 30 4
gpt4 key购买 nike

我使用应用程序编译器在 Matlab (2014a) 中创建了一个 .NET 程序集,我正尝试在 C# 下使用它。

matlab模块只有1个功能:

function [ val ] = AnalyzePicture( arg1 )

val = 5;

end

导出的 .NET DLL 名为 AnalyzePicture.dll 并导出 Class1(在 Matlab 应用程序编译器中定义)。但是,当我尝试初始化它时,出现异常:

The type initializer for 'MathWorks.MATLAB.NET.Arrays.MWArray' threw an exception

内部异常说:

An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)

这是代码

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using AnalyzePicture;
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;

namespace Analyzer
{
public class MatlabWrapper
{
AnalyzePicture.Class1 analyzer = null;

public MatlabWrapper()
{
try
{
// The exception is raised here
analyzer = new AnalyzePicture.Class1();
}
catch (System.Exception ex)
{
MessageBox.Show("f");
}
}

...

我的项目引用了 MWArray(8.3,当前版本)和 AnalyzePicture dll(和 DirectShowLib-2010)。

我试图在网上找到解决方案,但找不到关于如何在 C# 中正确使用 Matlab .NET 程序集的合适示例。我完全按照 this 中的描述做了除此之外,我的程序集不是以 com.

开头的文章

关于可能导致问题的任何想法?非常感谢任何代码示例

(我使用的是 Windows 7 64 位,Matlab 2014a 8.3 64 位)

最佳答案

以防其他人遇到同样的问题。我前段时间遇到过这个问题,所以我找到了完整的解决方案。

您需要将项目设置设置为使用 .Net Framework 4.0(而不是 4.5 VS 2013 设置为默认版本)并将目标平台更改为 x64。该套件在 Win 8.1 (x64)、MatLab R2013a(x64,运行时版本 8.1)和 Visual Studio 2013 上运行良好。

关于c# - 在 Matlab 中创建共享库(.NET 程序集)并在 C# 中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26910603/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com