- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我刚刚创建了一个最小的应用程序,它在 Vista x64 上使用 VS 2008 SP1。它是一个控制台应用程序,使用向导创建,没有 MFC 或任何东西,我在 64 位中构建它。
当我在我的开发箱上运行调试 exe 时,在 Visual Studio 2008 中按 F5,我得到这个错误:
TestApp.exe - Unable To Locate Component
This application has failed to start because MSVCR90.dll was not found.
Re-installing the application may fix this problem.
OK
我在运行发布 exe 时没有收到此错误,它按预期工作。
当我添加一些对 iostream 和 fstream 的依赖项并开始调用一些 winsock API 调用时,这个问题就开始了。
有什么建议吗?
更新:我将 msvcr90.dll(不是 msvcrd90.dll)复制到正确的文件夹中,现在我得到一个不同的错误:
运行时错误!
程序:[片段]...
R6034
应用程序试图错误地加载 C 运行时库。请联系应用程序的支持团队以获取更多信息。
最佳答案
您的应用程序正在使用 DLL CRT 运行时。您要运行它的机器需要安装调试 CRT 运行时 dll(这很麻烦……)。我认为更好的解决方案是更改编译选项以使用静态链接的 CRT 运行时(这意味着运行时链接到您的应用程序而不是使用 DLL 版本)。
在 visual studio 中,进入项目的属性,然后选择配置属性/C++/代码生成,并将“运行时库”从“多线程调试 dll”更改为“多线程调试”。
您可能也想对发布版本执行相同的操作,因为某些操作系统版本不会预装 V9 发布 CRT 库,或者您可以将 v9 发布 crt dll 作为安装的一部分包含在内。
关于c++ - VS2008 C++ 应用程序无法在 Debug模式下启动 : This application has failed to start because MSVCR90. dll 未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/956811/
我有 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 中导入函数以及用于导出的调用约定之外,它们几乎没有提供任何文档。 此人的插件从
我是一名优秀的程序员,十分优秀!