vs2010编程时,如何使exeq包含dll

yang05052002 2013-04-16 04:21:18
vs2010编程时用到其它dll,但我并不知道用到了哪些。
比如:我用vs和matlab混合编程,编译后到没有安装matlab的电脑运行。电脑显示缺少mclmcrrt7_17.dll。
我想请问,能不能把用到的dll编译时一起编译到exe里面。
...全文
182 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang05052002 2013-04-18
  • 打赏
  • 举报
回复
引用 7 楼 fly4free 的回复:
打包之前, 用 dependency walker 查看一下
程序可以运行。但用 dependency walker 出现错误。显示 Error: At least one required implicit or forwarded dependency was not found. Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module. Error: Modules with different CPU types were found. Warning: At least one delay-load dependency module was not found. Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module. 请问怎么回事。谢谢。
encoderlee 2013-04-17
  • 打赏
  • 举报
回复
最好的方法是把DLL和EXE打包发给别人在其他电脑运行。如果你不知道需要哪些DLL,可以上网查资料或一个一个的测试。比如在A电脑提示缺少xx1.dll,就在你电脑上把它搜索复制出来,放到EXE所在目录下,再到A电脑运行,又提示缺少xx2.dll,就在你电脑上把它搜索复制出来,放到EXE所在目录下,再到A电脑运行,又提示缺少xx3.dll,就在你电脑上把它搜索复制出来,放到EXE所在目录下,再到A电脑运行。。。
encoderlee 2013-04-17
  • 打赏
  • 举报
回复
如果matlab提供了静态库LIB的话,编译的时候可以静态链接到EXE里,如果只提供了DLL动态库的话,只能和EXE放在一个文件夹里传给别人运行。(不过matlab貌似没提供静态库) 当然,非要只生成一个EXE的话,可以把DLL作为RC资源放到EXE里,运行的时候在目标电脑上释放出来显式加载LoadLibrary,然后显式导出GetProcAddress。这样会很麻烦,不推荐
fly4free 2013-04-17
  • 打赏
  • 举报
回复
打包之前, 用 dependency walker 查看一下
hdg3707 2013-04-17
  • 打赏
  • 举报
回复
Xenocode Postbuild 2010 for .NET不能在WIN8上运行,WIN7上好象可以,忘了,但在XP下肯定没问题,另外,你下载个破解版本的 Xenocode Postbuild 2010 for .NET ,Xenocode Postbuild 2010 for .NET就是把EXE文件和DLL文件(可以用自动查找依赖文件来自动添加所需的DLL及相头文件,我一般是手工加DLL及OCX控件,因为我知道额外都有哪些DLL及控件)
yang05052002 2013-04-16
  • 打赏
  • 举报
回复
引用 1 楼 hdg3707 的回复:
如果你不是动态凋用DLL,可以静态连接。其实你可以用Xenocode Postbuild 2010 for .NET这个软件把所有的DLL都打包到EXE文件里,这样就是个绿色软件

方法1:静态连接。是不是配置一下两项:项目 -> 配置属性->常规->MFC的使用 :在静态库中使用MFC(此项必须设置)。
项目 -> 配置属性->C/C++->代码生成->运行库 :选择/MT。
不过配置完后反而编译不了。怎么回事?错误一大堆。
方法2:Xenocode Postbuild 2010 for .NET
这个软件怎么用啊?是不是直接打开编译后的exe。
yang05052002 2013-04-16
  • 打赏
  • 举报
回复
方法1:静态连接。是不是配置一下两项:项目 -> 配置属性->常规->MFC的使用 :在静态库中使用MFC(此项必须设置)。
项目 -> 配置属性->C/C++->代码生成->运行库 :选择/MT。
不过配置完后反而编译不了。怎么回事?错误一大堆。
方法2:Xenocode Postbuild 2010 for .NET
这个软件怎么用啊?是不是直接打开编译后的exe。
不过显示:
hdg3707 2013-04-16
  • 打赏
  • 举报
回复
如果你不是动态凋用DLL,可以静态连接。其实你可以用Xenocode Postbuild 2010 for .NET这个软件把所有的DLL都打包到EXE文件里,这样就是个绿色软件

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧