- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 VS2008 创建我的应用程序的调试版本。编译后,当我尝试运行该应用程序时,出现了著名的“缺少 MSVCR90.dll”错误。
最初我尝试将 MSVCR90.dll 从 winsxs 文件夹复制到应用程序文件夹,但我得到另一个著名的错误“应用程序已尝试错误地加载 C 运行时库”
最后,我尝试检查应用程序的依赖性,它向我揭示了一些奇怪的东西。有两个 MSVCR90 库作为应用程序的依赖项 - msvcr90d.dll 和 msvcr90.dll。我不是这个库的非调试版本如何进入我的应用程序。
我做错了什么。提前致谢。
这是一张图片:
最佳答案
我找到了答案!
我使用 /VERBOSE:LIB 链接器标志来找出链接的哪一部分将 MSVCR90.dll(发布)库添加到我的应用程序中。
后来将 /NODEFAULTLIB:MSVCRT.lib 链接器标志用于 libs/exe 以避免库的 MSVCRT.lib(发布)版本并在链接期间强制执行“无冲突”。这将避免在您的可执行文件/库中引用两个版本的 MSVCRT 库。
注意:如果您想在应用程序中避免调试版本的 MSVCRT,则可以使用 /NODEFAULTLIB:MSVCRTD.lib
关于C++ 应用程序(调试版)包含 VS 运行时库 msvcr90.dll 和 msvcr90d.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39094220/
我有 VS 2008,我希望我的应用程序可以与 Windows 98 一起工作而无需包含 MSVCR90.dll ..Win98 附带 MSVCR60 那么我如何告诉 MSVC 这样做呢?寻找 Vis
我有以下带有 msvcr100!_CxxThrowException 的线程堆栈。 # ChildEBP RetAddr Args to Child 00 0973ef3
出于好奇,加载使用 MSVCR 编译的应用程序时到底发生了什么? Windows 的加载器实际上是如何初始化 CRT 的?对于我目前收集到的信息,当程序以及所有导入的库都加载到内存中并完成所有重定位时
我试过用 Google 搜索,但找不到解决方案。我正在尝试学习一些基本的 C++。我写了一个简单的hello world: #include int main() { printf("hel
我有一个奇怪的问题,我正试图为某人解决。我无权访问代码。有一个加载 DLL 的程序并具有某种插件框架。除了如何从 DLL 中导入函数以及用于导出的调用约定之外,它们几乎没有提供任何文档。 此人的插件从
我是一名优秀的程序员,十分优秀!