栀子果 发表于 2009-9-1 17:55:33

设置和结果:

栀子果 发表于 2009-9-1 18:02:05

VC程序太多,附件传不上来,传个.cpp文件。就是最简单的控制台程序:

taohe 发表于 2009-9-1 18:29:50

那个设置和结果的Word文档打开后看不见内容。请查看一下。

栀子果 发表于 2009-9-1 19:40:41

那个设置和结果的Word文档打开后看不见内容。请查看一下。
taohe 发表于 2009-9-1 18:29 http://forum.simwe.com/images/common/back.gif
可能是单位和家里的word版本不同,如果还不行明天我压缩好再拷来。

栀子果 发表于 2009-9-1 20:01:03

那个设置和结果的Word文档打开后看不见内容。请查看一下。
taohe 发表于 2009-9-1 18:29 http://forum.simwe.com/images/common/back.gif
我的邮箱:momlovekaikai@yahoo.cn
我可以通过邮箱发给你,谢谢!

taohe 发表于 2009-9-1 20:29:49

真是有点匪夷所思,我重新下载你的附件,那个“设置和结果”的Word文档打开说有131页,但都是空白的。我用的是Word2007/Windows7。

我的邮箱:taohe@hotmail.com

栀子果 发表于 2009-9-3 17:30:44

真是有点匪夷所思,我重新下载你的附件,那个“设置和结果”的Word文档打开说有131页,但都是空白的。我用的是Word2007/Windows7。

我的邮箱:taohe@hotmail.com
taohe 发表于 2009-9-1 20:29 http://forum.simwe.com/images/common/back.gif
taohe老师:
昨天已经把程序代码和文档发到你的邮箱里了,不知收到没?想知道这些内存问题对程序影响有多大,能不能忽略?虽然能正常出结果,但心里总是不踏实!希望老师能指点一下!谢谢!

taohe 发表于 2009-9-4 10:33:38

我收到了,不过比较忙,还没有回复,就在这里先说一下。

从那写文档中我看不出什么问题。看错误好像是在debug编译后调试运行时出现的错误,你用“release”选项编译后运行的话,有相同的问题吗?

一个可能的原因可能是某些运行库不兼容或者冲突导致的错误信息。试试看这样:
1. 按照编译后程序的发布方法,把这个程序拿到另外一个最好是没有安装matlab的电脑上,安装MCR环境,然后在那里运行,看是不是还是有同样的问题。

2. 还是在本机上,修改C++源程序,在所有调用和matlab有关的地方加上Exception处理,就是用try和catch语句,可以尝试catch CMemoryException,看看它能不能提供更多的信息。

栀子果 发表于 2009-9-4 19:05:03

谢谢taohe老师的指导!我试过在“release”下运行,也有同样的问题。你说的两种方法没有试过,上班后我试一下,谢谢taohe老师!

OSCAR6699 发表于 2009-9-5 22:31:39

谢谢,先学了了!!

栀子果 发表于 2009-9-7 20:08:57

我收到了,不过比较忙,还没有回复,就在这里先说一下。

从那写文档中我看不出什么问题。看错误好像是在debug编译后调试运行时出现的错误,你用“release”选项编译后运行的话,有相同的问题吗?

一个可能的原 ...
taohe 发表于 2009-9-4 10:33 http://forum.simwe.com/images/common/back.gif
taohe老师:今天试了你说的两种方法,但是都没有结果。
1)将\MATLAB\R2007a\toolbox\compiler\deploy\win32的四个文件全部拷到没有matlab的机器上,设置好环境运行,内存异常问题依然存在。
2)用try 和catch跟踪:使用下面语句
try
{
libmyadd2Initialize();
}
catch( ...)
{
int a=0;
}
因为使用catch( CMemoryException *e)总编译有问题(好像用的不对,太笨了!),所以使用了catch( ...),应该只要有问题就可以跟踪到,但是没有进入到catch里面,是不是能说明VC没有问题吧!
这个问题太复杂了,快崩溃了。不知道是继续还是放弃。实在不行准备拷机,看看到底有没有影响。

taohe 发表于 2009-9-7 20:40:38

这个问题显得有点扑朔迷离了。不过,说实话,由于这个测试程序非常简单,所以我觉得是你的系统、你的VC,或者matlab有问题。也不能排除某个步骤、环节上认为的疏忽。不过我从现有的信息中无法判断问题的根源,所以帮不了你什么忙。

如果因为这样的原因就放弃混编的想法,我觉得不可取,它在某些应用中是很有用的。

如果你要有时间、精力的话,不妨试试在一个虚拟环境中从零开始搭建环境。免费软件VirtualBox用起来很顺手,用它你可以创建一个虚拟的Windows电脑,在那里重新安装matlab,visualstudio等相应的软件,打好补丁。为了更好地避免不相干的问题,尽量使用英文版本的软件。希望这样能够巩固你学习混编的兴趣。也有可能找到现在遇到的问题的根源。

栀子果 发表于 2009-9-7 21:23:56

谢谢taohe老师耐心的指导!我不是想放弃混编,只是针对这个内存异常问题而已。其实也不想放弃这个问题,总觉得事情没有彻底完成,心里有遗憾。但是工作又不能停止,等忙过这一阵,我会继续查找问题的原因的。再次感谢taohe老师!你渊博的知识、平和的心态以及对MATLAB的热情,深深感动我!谢谢!

taohe 发表于 2009-9-7 21:34:34

谢谢夸奖,你太客气了,我不禁有点汗颜。在这个主题的帖子中都有好几个我无法帮助解决的问题,我觉得有压力,所以还得不停的学习。hehe :)

栀子果 发表于 2009-9-7 21:47:15

呵呵,不是客气,是真心话!和你学习了不少东西!以后有问题还会向老师请教的!!!

her 发表于 2009-9-22 12:42:57

79# taohe 你好,能否将您的Matlab 2009 与vs6 混编的工程告诉我呢,我应该您所说的方法将.m文件生成了.h,.dll,.lib文件,然后不知如何在vs6中配置环境,现在出现mclInitializeApplication_proxy' : undeclared identifier这样的错误,谢谢了,我的邮箱是liuhe108@gmail.com

taohe 发表于 2009-9-23 10:59:26

79# taohe你好,能否将您的Matlab 2009 与vs6 混编的工程告诉我呢,我应该您所说的方法将.m文件生成了.h,.dll,.lib文件,然后不知如何在vs6中配置环境,现在出现mclInitializeApplication_proxy' : undeclared id ...
her 发表于 2009-9-22 12:42 http://forum.simwe.com/images/common/back.gif

我暂时没有对应于matlab r2009a/b的例子程序代码。不过你试试看把那个有main函数的cpp文件中的关于mcr的两个include语句注释掉,重新编译。应该就没有问题了。

wsnad 发表于 2009-10-11 23:58:04

楼上出现的几个问题我基本上都碰到了,一一解决,现在请教taohe老师另一个问题,我按照说明配置后, 首先的错误是 error C2061: 语法错误 : 标识符“_TCHAR”,因此我将int _tmain(int argc, _TCHAR* argv[])括号中的内容去掉,再编译,这次错误是
fatal error LNK1561: 必须定义入口点
请教taohe老师,这个该怎么该
我用的是vista,matlab2009b

messenger 发表于 2009-10-12 00:21:01

本帖最后由 messenger 于 2009-10-12 00:22 编辑

118#wsnad


最好把你遇到的那几个问题的解决方法共享一下。本版不只是提问题的地方,更是共享经验,大家共同提高的地方。


楼上出现的几个问题我基本上都碰到了,一一解决,现在请教taohe老师另一个问题,我按照说明配置后, 首先的错误是 error C2061: 语法错误 : 标识符“_TCHAR”,因此我将int _tmain(int argc, _TCHAR* argv[])括号中的 ...
wsnad 发表于 2009-10-11 23:58 http://forum.simwe.com/images/common/back.gif

wsnad 发表于 2009-10-12 15:20:14

我碰到的有:找不到mclInitializeApplication_proxy
将#include "mclmcr.h"后加个rt即可
另一个是没生成ctf,不管即可
我的问题是因为项目没有建对,应该是win32控制台,我建成clr控制台了

现在能正常编译,在文件最后价格getchar()就不会一闪而过

生成exe的文件夹内必须放入dll文件,否则程序无法运行
页: 1 2 3 4 5 [6] 7 8 9
查看完整版本: 【原创】程序中使用MATLAB编译产生的DLL (VS2005, MATLAB7.5, mwArray)