记录asp.net 开发的网站实现c#调取Matlab生成的dll文件。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36755727/article/details/86636897

功能需求:利用Matlab强大的数字处理能力和网页的丰富多彩的显示特点将MatLab处理的结果以web形式显示出来。

环境:系统win10(64位),集成开发环境(VS2017 专业版),Matlab R2016a(64位)

       在这里就不介绍了matlab怎样生成dll文件了,因为不同的Matlab版本的界面不一样,但是这里需要强调的如果Matlab是64位,就会默认生成64位的dll文件,如果是32位,则会默认生成32位的dll文件。如果博友知道64位Matlab的生成32位dll的方法,请留言,万分感谢。下面给有几个Matlab生成dll的连接。

版本:MatlabR 2017a    将.m文件生成dll文件

版本:Matlab R2014a   MATLAB和VS混合编程

        在这里需要强调的是,什么样开发平台,如果不进行额外设置的话,就会形成什么样dll或者exe的文件,例如64位的MatLab会生成64位的dll或exe文件,32位的Matlab会生成32位的dll或exe文件。如果需要补充一些关于x64,x86以及AnyCPU之类的知识的,可以参考下面的两个别人的博客。

关于.NET编译的目标平台(AnyCPU,x86,x64)

关于VS项目平台的x86,x64,Any CPU以及Debug和Release

      在创建好dll文件之后,就需要在c#项目中引用刚生成的dll文件,关于C#调取Matlab的dll文件步骤,大家可以从参考下面的博客

visual studioC#调用MATLAB生成的DLL

     关于博客visual studioC#调用MATLAB生成的DLL中的内容,需要强调的是:

  1.     添加MWArray.dll
  2.   配置管理器中,要将平台配置与MCR版本一致,MCR版本实际上也就是你生成dll的版本,是32位的就选择x86,是64位就选择x64,默认的AnyCPU,它的意思就是平台取决于操作系统。

      通过以上的分析,本人发现,自己的开发环境是没有问题的,为什么还是会提醒什么“xxx”的类型初始值引发异常等错误。 后来在一篇博客中看到,对于asp.net开发网站,需要进行如下设置:

                               

      后来想了想,这样设置是有道理的,因为在找bug过程中,我曾将我的利用C#开发的窗体应用程序调取Matlab生成的dll文件,默认的还是有问题的,后来将解决方案属性>生成>目标平台的设置由AnyCPU改成x64之后就可以运行了。但是我在Asp.NET中,并没有发现这样的设置,然后就不知道怎么弄了,突然看到了一篇博客,说在ASP.NET开发的项目中,在工具>选项找到上图中的设置,并且将红线部分,选中就可以了。到这里才发现,对于Web项目,是在这里修改类似于窗体应用程序的目标平台。

猜你喜欢

转载自blog.csdn.net/qq_36755727/article/details/86636897