Visual Studio中的/ MD不从发布配置中的msvcr100.dll导入

时间:2012-09-12 15:07:13

标签: c++ visual-studio-2010

我有一点奇怪的问题,通常人们会问如何从他们的可执行文件中删除对msvcrXX.dll的引用,我有一个相反的问题:我需要强制我的可执行文件使用msvcr100.dll。这是必需的,因为我将使用CRT的其他DLL链接到我的项目,并且此DLL导入msvcr函数。

所以我设置/ MD选项,然后在“Debug”中构建时,我得到一个正常工作的代码(msvcr100.dll在EXE的导入表中),但是当我尝试编译“Release”时,我实现了只有从mylib.dll和kernel32.dll导入的更大的可执行文件,导致CRT无法正确初始化,并因此导致运行时错误。

我有

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

在代码中,例如,使用'printf'函数。

提前感谢您的答案。

添加: 我找到的解决方案:在代码的开头添加“#define _DLL”并将msvcrt.lib添加到其他依赖项中。谷歌说,这就是“/ MD”必须做的事情,不知道为什么不这样做。

1 个答案:

答案 0 :(得分:0)

我找到的解决方案:在代码的开头添加“#define _DLL”,并将msvcrt.lib添加到其他依赖项中。谷歌说,这就是“/ MD”必须做的事情,不知道为什么不这样做。

任何更美好的想法仍然受到赞赏。