我有一点奇怪的问题,通常人们会问如何从他们的可执行文件中删除对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”必须做的事情,不知道为什么不这样做。
答案 0 :(得分:0)
我找到的解决方案:在代码的开头添加“#define _DLL”,并将msvcrt.lib添加到其他依赖项中。谷歌说,这就是“/ MD”必须做的事情,不知道为什么不这样做。
任何更美好的想法仍然受到赞赏。