关于发布VC应用程序的问题

不录 2008-09-20 09:48:09
我在VS2005下用VC++写了个win32程序,想在另一个机器上运行(debug版本),
C++运行时库我使用dll方式,所以我把msvcr80d.dll文件放入exe同一目录下,
manifest(程序自动生成的那个X.exe.embed.manifest)使用欠入exe文件方式,
这样我把程序放在另一台机器上(win2003),运行后,还是提示配置不正确错误,
然后把Microsoft.VC80.DebugCRT.manifest文件也放入目录后能够运行了。


放入必要的dll文件那是正常的,以前vc6.0也是如此。
但是又要放入一个额外的.manifest文件,让我觉的很不舒服,
我希望这个Microsoft.VC80.DebugCRT.manifest文件可以不使用,或者是欠入exe文件,
请问有什么方法
...全文
225 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
paulin 2008-09-23
  • 打赏
  • 举报
回复
学习~
ilovedrv 2008-09-22
  • 打赏
  • 举报
回复
静态编译啊,这样安全点
jameshooo 2008-09-22
  • 打赏
  • 举报
回复
在项目中随便哪个h或CPP文件中加入下面的语句:
#ifdef _DEBUG
#pragma comment(linker, "\"/manifestdependency:type='Win32' name='Microsoft.VC80.DebugCRT' version='8.0.50727.762' processorArchitecture='X86' publicKeyToken='1fc8b3b9a1e18e3b' language='*'\"")
#else
#pragma comment(linker, "\"/manifestdependency:type='Win32' name='Microsoft.VC80.CRT' version='8.0.50727.762' processorArchitecture='X86' publicKeyToken='1fc8b3b9a1e18e3b' language='*'\"")
#endif
scq2099yt 2008-09-22
  • 打赏
  • 举报
回复
up
不录 2008-09-22
  • 打赏
  • 举报
回复
我说明一下,我不希望使用静态链接,我开头申明了我要使用dll文件。我是在这个前提下提出这个问题
phisherr 2008-09-21
  • 打赏
  • 举报
回复
.manifest文件,可以静态编译到exe?
phisherr 2008-09-21
  • 打赏
  • 举报
回复
受教了
buyong 2008-09-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 flm007 的回复:]
以前我也遇到过,原因很简单,您需要静态编译,选择这个工程,属性,常规里你找一下,选择MFC静态编译

因为你不静态编译VC2005和VC6。0有个根本区别在于基于.NET!
[/Quote]

静态编译确实不用manifest文件了,因为把C运行库都编到exe里了,size变大了不少吧
ArLiu 2008-09-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 LBPeking 的回复:]
干嘛不发布Release版本呢???
[/Quote]

好像即使使用Release,也要Project->Setting->General->Use mfc in a static library设置一下吧?

闪破风浪 2008-09-21
  • 打赏
  • 举报
回复
干嘛不发布Release版本呢???
jameshooo 2008-09-21
  • 打赏
  • 举报
回复
使用/MTd选项编译就不会依赖这个DLL
lonkil 2008-09-21
  • 打赏
  • 举报
回复
可以嵌入到EXE中。
flm007 2008-09-20
  • 打赏
  • 举报
回复
以前我也遇到过,原因很简单,您需要静态编译,选择这个工程,属性,常规里你找一下,选择MFC静态编译

因为你不静态编译VC2005和VC6。0有个根本区别在于基于.NET!

1,649

社区成员

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

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