Ale*_*ack 2 c++ 64-bit visual-studio-2008
我在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
Run Code Online (Sandbox Code Playgroud)
当我运行release exe时,我没有收到此错误,它按预期工作.
当我在iostream和fstream上添加一些include依赖项并开始调用一些winsock API调用时,就开始出现此问题.
有什么建议?
更新:我将msvcr90.dll(而不是msvcrd90.dll)复制到正确的文件夹中,现在我得到一个不同的错误:
运行时错误!
节目:[snip] ...
R6034
应用程序尝试错误地加载C运行时库.有关更多信息,请联系应用程序的支持团队.
您的应用程序正在使用DLL CRT运行时.要运行它的机器需要安装调试CRT运行时dll(这是一个痛苦的屁股...).我认为更好的解决方案是更改编译选项以使用静态链接的CRT运行时(这意味着运行时链接到您的应用程序而不是使用DLL版本).
在visual studio中,进入项目的Properites,然后选择Configuration Properties/C++/Code Generation,并将"Runtime Library"从"multi-threaded debug dll"更改为"multi-threaded debug".
您可能也希望对发布版本执行相同的操作,因为某些版本的操作系统不会预安装V9版本的CRT库,或者您可以在安装过程中包含v9版本的crt dll.