0

我正在 Visual Studio 2010 上构建一个 dll,我正在使用一些简单的 C 函数,例如fprintfand fread,默认情况下它链接到msvcr100.dll

此 dll 将被加载到可能使用不同 CRT 版本(例如msvcr90.dllmsvcrt.dll)的应用程序中。

msvcr100.dll由于我知道应用程序将在加载我的 dll 之前加载 CRT,我可以删除对应用程序加载的 CRT 中的 C 函数的依赖并使用它吗?

4

1 回答 1

0

最后,我决定针对目标应用程序使用的最低公分母 CRT 版本构建 DLL msvcr90.dll,.

我通过使用 Visual C++ 2008 Express(免费)提供的 MSVC 工具链来做到这一点。

我确实尝试了 mingw/gcc 工具链,它允许您指定要链接的 CRT 版本(请参阅mingw-rtgcc -specs=msvcr**),但是,msvcr90.dll它是一种新型 SxS 程序集,所以我无法获得生成的可执行文件可以正常运行。

可能值得考虑msvcr**.dll完全跳过链接;看到这个帖子VC/include/delayhlp.cpp

于 2011-12-30T14:44:29.437 回答