0. 给朋友发了个demo,收到提示:丢失 msvcr100d.dll
1. 一看是运行库文件,赶紧让朋友下载并安装vc++ 2010 redistribution,朋友反馈还是提示丢失这个dll文件
2. 把我本地的这个dll拷贝到他机器里,提示成功
3. 太奇怪了啊,这玩意就是vc++运行库文件啊,为啥装了redistribution还不成呢
4. 我注意到了这个文件名的100后面带着一个d字,让我想起了debug~
5. 在vc里面找设置,终于发现了:property->c/c++->code generation->runtime library
6. 总结:
msvcr100d.dll,这个dll对应的是c++编译器的code generation的runtime library版本的设置。默认vs2010会把他设置成multi-threaded debug dll (/mdd),这时使用的就是msvcr100d.dll。正常发布时应该是设置为multi-threaded (/mt)或/md,这时就会去使用vc++ 2010 redistribution里的dll了。带d的dll含有living debug所需的调试功能,但不在redistribution里。
7. 另外,直接修改编译模式从debug改为release也会修改这个配置。但别忘记了把release下的vc++ dictionary里的值和link input重新配置哦,这些配置也同样不会从debug里复制过来。