随笔 - 92  文章 - 206  trackbacks - 0
<2006年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

常用链接

留言簿(4)

随笔分类

随笔档案

技术

朋友

搜索

  •  

积分与排名

  • 积分 - 104348
  • 排名 - 28

最新评论

阅读排行榜

评论排行榜

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

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

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


标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
.NET频道  博客园社区  闪存
网站导航: