随笔 - 119  文章 - 290  trackbacks - 0

博客搬家了哦,请移步
叫我abc

常用链接

留言簿(12)

随笔分类

我的博客

搜索

  •  

积分与排名

  • 积分 - 299419
  • 排名 - 84

最新评论

阅读排行榜

在 Visual Studio 2005.NET中,如果按照默认的情形,编译出来的程序拿到其他机器运行时,常常会报运行环境配置错误。
通常都是没有安装2005的机器会如此。

今天终于找到这两个编译选项所造成的不同。在 代码生成-》运行时库的选择中把MD改成MT就可以了。因为MD所使用的库的执行代码在DLL中,因此要希望你的程序能在别的程序上运行,必须要把响应的DLL库也带上。
MT的话,自然就是静态库了。
posted on 2006-06-24 14:54 LOGOS 阅读(2403) 评论(5)  编辑 收藏 引用

FeedBack:
# re: 关于两个编译选项 MD 和 MT 2006-06-25 11:21 mroske
单单带上dll ,可能也不行。还需带上dll清单文件:
Microsoft.VC80.DebugCRT.manifest
Microsoft.VC80.CRT.manifest  回复  更多评论
  
# re: 关于两个编译选项 MD 和 MT 2006-06-25 22:18 LOGOS
哦,谢谢指导  回复  更多评论
  
# re: 关于两个编译选项 MD 和 MT 2006-06-30 15:15 Arcrest
2005的Debug运行最近总是提示找不到MSVCR80D.dll,但是Release版本却能找到,楼上的兄弟可知道怎么回事
后来把本来在Assembly下面的相关的文件拷贝到System32目录下面,报错好像是side by side 什么的,无法执行,是不是和manifest有关
如何解决?
谢了先

  回复  更多评论
  
# re: 关于两个编译选项 MD 和 MT 2006-06-30 19:20 LOGOS
1楼的也许知道。
但是你是用MT选项进行编译的吗?用MT的话应该不会有配置问题的。  回复  更多评论
  
# re: 关于两个编译选项 MD 和 MT 2006-07-15 19:12 mroske
我写了简单的“Hello world”win32控制台程序,在“VMware Workstation”(操作系统XP)上运行试验过。
debug 版本要带上如下 vc80 的crt 东西,并且放在程序同一目录下:
Microsoft.VC80.DebugCRT.manifest
msvcp80d.dll
msvcr80d.dll
msvcm80d.dll (这个好像不需要,不过带上也无妨)

release 版本同上类似。
Microsoft.VC80.CRT.manifest
msvcp80.dll
msvcr80.dll
msvcm80.dll

事实上网上很多人也说过。。。。  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理