VC中使用Matlab Engine出现"无法找到libeng.dll"的问题

摘要:
实际上,不是我。#include“engine.h”//我终于知道为什么找不到库文件了——因为添加的头文件用引号括起来。//#包括<然后,链接将不会出现找不到库文件的错误。2010年8月3112日,ProgramFilesMATLABR2009aexternlibwin32microsoft将所需的D添加到VS项目中:修改后重新启动系统路径确实很麻烦。

VC中使用Matlab Engine出现"无法找到libeng.dll"的问题

本以为使这个原因

,其实不是我2了

#include "engine.h"

//终于知道为什吗老是找不到那个库文件--是因为添加的头文件是以引号括起来的啊

//#include <engine.h>

不是因为环境变量没有生效的缘故

其实目前来说应该是这个问题no compile tool is associated with the file extension? 因为编译器窗口打开的是一个h文件,编译器无法编译,必须当前打开的是一个cpp文件,才能进行编译,然后link就不会出现找不到库文件的错误了

 

2010-08-31 12:24

我用的是Visual Studio 2008和Matlab R2009a,再次出现这个问题:
在VS的包含头文件中已经加入:D:Program FilesMATLABR2009aexterninclude
在VS的包含库文件中已经加入:D:Program FilesMATLABR2009aexternlibwin32microsoft
在VS 的project 加入需要的D:Program FilesMATLABR2009aexternlibwin32microsoft下各种库文件*.lib.

编译通过了,但是运行时后发现弹出:"无法找到libeng.dll",经过查找libeng.dll在D:Program FilesMATLABR2009ainwin32下,将D:Program FilesMATLABR2009ainwin32加入系统的Path路径中,还是不行,后来考虑到修改Path需要重启才可以,重启以后果然可以了。

修改系统path需要重启真是很麻烦,但是一直没有找到好的办法,网上的方法:
"

 

很多安装程序在安装完成后并不要求重启Windows,而新的环境变量已经生效了,可见在不重启Windows的情况下让环境变量生效是完全可行的。

可我搜索如何不需重启Windows让环境变量生效的方法,只找到三类方案:

  1. 下载一个专门的软件
  2. 编个小程序
  3. 修改注册表

我既然是个懒得重启Windows的人,难道我会不厌其烦按上述三种方法去做吗?没办法,我只有自己摸索。最后找到一个非常简单的在Windows下直接让环境变量生效的办法:

先到我的电脑>属性>高级>环境变量,添加新环境变量或修改已有的环境变量,然后运行“DOS命令提示符”或run cmd,假设要修改PATH变量,不管PATH的原值是什么,在DOS窗口直接把PATH修改为任意值,关闭DOS窗口,这时,我的电脑>属 性>高级>环境变量里PATH已经在Windows全局生效了。

不用担心在DOS窗口的修改会影响我的电脑>属性>高级>环境变量里的修改,DOS窗口的环境变量只是Windows环境变量的一个副本,副本的改动不会影响正本,但会触发正本的刷新,这正是我想要的——让环境变量生效。

附注:

不懂在DOS下修改环境变量?简单得很,如要修改PATH,“SET PATH=C:”,等号两边不要有空格。PATH环境变量最常用,专门有个DOS命令PATH,用来查看和修改PATH值,这里就不展开讲PATH的语法了。

想验证一下环境变量到底有没有生效?简单得很,新开一个DOS窗口,如要看PATH值,“ECHO %PATH%”。同上,PATH还可以用PATH命令来查看。

"
似乎不好使,有时间试试用软件的方法

终于实现c#调用matlab函数(ZZ)

.net是微软的发展方向,以后我们开发软件的时候不免会调用一些matlab语言

今晚一直在***图用c#调用matlab,终于成功。

主要思想就是首先把matlab的m函数做成com组件,然后在c#中应用此com组件,即可。

主要步骤如下:
1.建一个m文件(test.m)
例如:
function test(h,D)
for x=-10:0.1:10,
   if x>D
       y=h;
       hold on;
       plot(x,y)
   elseif x<-D
       y=-h;  
       hold on;
       plot(x,y)
   else
       y=h/(D*x);
       hold on;
       plot(x,y)
   end
end

2.在matlab中输入comtool命令,就打开了matlab com builder,

点击file-new project,新建一个工程,

在component name里输入名字 点击ok就行了。

然后点击project–Add files,将test.m添加入工程,

然后点Build-Com Object,就会在comtestdistrib文件夹下生成一个test1_0.dll(它就
是做好的com组件),

Build时matlab已经自动将此dll在注册表中注册

我们还需做一个准备工作,进入<matlabroot>/ bin/win32目录下(matlabroot为你机器上
matlab安装的路径),打regsvr32 mwcomutil.dll ,即对mwcomutil.dll进行注册(这个dll
是matlab下作的任何com组件都要用到的dll),下面 我们在其他编译器下调用时就可以用了

3.c#下实现调用

     新建一个c#项目(我采用的是vs.net2003),选中右边的解决方案资源管理器中的引用
,点鼠标右键,选添加引用,在弹出来的窗口中选com,然后也找到test_1_0 .dll,点选
择,然后确定就可,此时此com组件也添加到工程里面去了,同样我们可以选择

然后编写程序

     test.testclassClass st=new test.testclassClass();
             object m=1,n=2;
             st.test(m,n);
即可

然后在c#中就出现了我们所想得到的图形,呵呵
原来在c#中实现调用matlab没有我们所想象的困难呀,呵呵
希望大家有想法或者好的建议多多给出,

 

免责声明:文章转载自《VC中使用Matlab Engine出现"无法找到libeng.dll"的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Tomcat 学习笔记(二)监控射频识别技术漫谈(14)——S50与S70存取控制【worldsing笔记】下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

内网esxi磁盘空间不足导致虚拟机宕机

内网esxi磁盘空间不足导致虚拟机宕机 一、问题引入   周一上班的时候,发现公司内网的戴尔服务器上(前人装的ESXi系统,里面有很多个虚拟机),好几个虚拟机异常关机了。点击重新开机,有以下报错提示: 选Retry是没用的,选Cancel,才有可能开机,为啥叫可能,因为有一些空间占用多的虚拟机不一定能开机,会一直重复这种报错。 二、问题研究及解决   检...

详解Javahome 与 Path 与ClassPath的含义 (转)

1、首先搞明白内部命令与外部命令的区别在学习编程过程中经常遇到这样的概念:内部命令启动后是常住内存的。用dos的时候内存都比较小,非常贵,而内部命令启动后是常住内存的。外部命令内部直接打就可以执行,外部得进到命令所在的目录或者设置环境变量才可以执行. 在java开发中设置的环境变量就解决这个问题的2、环境变量的含义(注意:java环境变量设置不分大小写)1...

(转)Linux下部署tomcat及tomcat war包应用程序

原文:http://www.cnblogs.com/smallfa/news/2017/07/17/7193620.html 1, 通过winscp将tomcat包(6和7版本都是一样的安装方法)和jdk-6u27-linux-x64.bin安装文件传送到linux 系统/opt里面.(这里没有固定要传送到/opt/hn,可以自己定义。) 2, 安装首先解...

OCR2:tesseract字库训练

由于tesseract的中文语言包“chi_sim”对中文字体或者环境比较复杂的图片,识别正确率不高,因此需要针对特定情况用自己的样本进行训练,提高识别率,通过训练,也可以形成自己的语言库。 工具: Java虚拟机,由于jTessBoxEditor的运行依赖Java运行时环境,所以需要安装Java虚拟机。下载地址:http://www.oracle.co...

TS的tsconfig.json配置

一切教程以官方文档为准   初始化一个tsconfig.json配置文件tsc --init 信息配置信息: { "compilerOptions": { // "incremental": true, // 增置编译 // "tsBuildlnfoFile": "./buildFile",...

JDK反编译的两种方式

环境 链接:https://pan.baidu.com/s/1DwWj5Kt4Gfi68k_EOAea_Q 提取码:57j2 apktools+dex2jar+gd-gui 方式一: apktools 1.把apk文件与apktool放在同一目录 2.命中cmd, 直接编译apktool.bat d base.apk(去到当前apktool目录下)...