找回密码
 注册
Simdroid-非首页
查看: 167|回复: 8

matlab6.5vc(dll)混编发布问题,很奇怪!

[复制链接]
发表于 2009-11-3 10:38:10 | 显示全部楼层 |阅读模式 来自 重庆沙坪坝区
本帖最后由 tiantian0 于 2009-11-3 10:46 编辑

前段时间做的程序在论坛前辈的帮助下终于可以运行了,现在面临发布的问题,
在vc里设置如网上通用的方法,采用静态链接dll,release发布,在本机上可以正常运行。准备发布到其他电脑上:
1  将mcc产生的dll及bin中两个图形工具和菜单文件,以及设置时放入工程中的libmat.lib、libmatlb.lib等lib文件放入release文件中;
2  把D:\matlab\extern\lib\win32中的mglinstaller.exe拷贝到目标机中;
3  在目标机e盘建立文件,名:runtest,将前述1、2中文件考入;
4  解压mglinstaller.exe解压得到bin和toolbox两文件,将热;release中所有文件考入bin \win32中,,很笨的方法了;
运行,vc程序启动正常,点击按钮(调用matlab function)程序一闪后自动关闭;
大家给点意见,可能有些其他问题我没有考虑到。

PS:用dependency工具查看dll,除了MPR.DLL有点问题,提示Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module. 其他dll都包含了,,但是本机上也有这个问题(不知道什么原因),而且可以运行。关于MPR.dll
发表于 2009-11-3 18:54:43 | 显示全部楼层 来自 广西贵港
Simdroid开发平台
所谓的本机可以运行,应该这样考虑:
1.mglinstaller.exe解压
2.本机e盘建立文件,名:runtest
3.将1步骤解压得到的所有的DLL放入runtest
4.mcc产生的dll及bin中两个图形工具和菜单文件和MFC EXE放入runtest
5.运行EXE。是否成功?
6.将本机的MATLAB文件夹改名,如改为MATLAB11
   再次运行EXE是否成功?

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2009-11-4 08:56:57 | 显示全部楼层 来自 重庆沙坪坝区
本帖最后由 tiantian0 于 2009-11-4 09:02 编辑

好的 ,谢谢 我试试。
原来我本机都不能运行的!
回复 不支持

使用道具 举报

 楼主| 发表于 2009-11-4 09:04:58 | 显示全部楼层 来自 重庆沙坪坝区
本帖最后由 tiantian0 于 2009-11-4 09:36 编辑

是不是dependency工具打开exe文件后  所有dll都有了就能运行了呢?
现在mpr.dll中有一个函数WNetRestoreConnectionA导出有问题(depends显示该项为红色),大家有好的方法请分享,谢谢!
我尝试找找是否是程序本身的问题.。
回复 不支持

使用道具 举报

发表于 2009-11-4 09:40:05 | 显示全部楼层 来自 广西贵港
本帖最后由 shunfly 于 2009-11-4 09:42 编辑

搞笑,搞了半天,怀疑是WINDOWS DLL问题,这关MATLAB混编何事?自己在Google E文中搜索去
http://www.dependencywalker.com/faq.html
还有,什么叫原来我本机也不能运行??与你一楼矛盾。。。
回复 不支持

使用道具 举报

 楼主| 发表于 2009-11-4 09:46:33 | 显示全部楼层 来自 重庆沙坪坝区
我没有把matlab改名,自己调试能够运行。改名后发现不能用了 ,请问出现这样的问题是不是与程序本身或者工程设置有关?
回复 不支持

使用道具 举报

发表于 2009-11-4 11:17:57 | 显示全部楼层 来自 广西贵港
改名后不能用可能与MATLAB DLL缺失有关。
回复 不支持

使用道具 举报

 楼主| 发表于 2009-11-4 11:39:13 | 显示全部楼层 来自 重庆沙坪坝区
本帖最后由 tiantian0 于 2009-11-4 11:48 编辑

哦 谢谢 也就是说不改名而在vc调试可以运行,而改名后装mglinstaller不能运行,是因为mglinstaller没有带够dll吗?  重装matlab能解决吗?

另外刚才用depens   profiling了一下  发现ATLAS_P4.DLL这个提示了很多错误。
比如GetProcAddress(0x00F90000 [ATLAS_P4.DLL], "dsytrd") called from "LIBMWLAPACK.DLL" at address 0x7AB556B8 and returned NULL. Error:  (127).
GetProcAddress(0x7ABC0000 [LAPACK.DLL], "dsytrd") called from "LIBMWLAPACK.DLL" at address 0x7AB556D6 and returned 0x7AC5C6E0.
GetProcAddress(0x00F90000 [ATLAS_P4.DLL], "dsytrf") called from "LIBMWLAPACK.DLL" at address 0x7AB556B8 and returned NULL. Error:  (127).

但我还是检查一下程序,调来调去容易弄掉一些东西。
回复 不支持

使用道具 举报

 楼主| 发表于 2009-11-5 10:39:13 | 显示全部楼层 来自 重庆沙坪坝区
还是不行,要重新全面的检查程序了!
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-7 09:20 , Processed in 0.073014 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表