Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 包括Visual C++;运行时与应用程序_Windows_Visual Studio 2010_Euler Math Toolbox - Fatal编程技术网

Windows 包括Visual C++;运行时与应用程序

Windows 包括Visual C++;运行时与应用程序,windows,visual-studio-2010,euler-math-toolbox,Windows,Visual Studio 2010,Euler Math Toolbox,我从Visual C++ 2010 Express切换到Visual C++ 2012专业版(Euler MaultToalbox)。为了兼容XP,我使用Visual C++ 2012的更新1的110-XP平台工具集。p> 在早期版本中,我在程序目录中添加了三个DLL文件MSV90*.DLL,并为它们添加了一个清单。对于Visual C++ 110,我也可以吗?我需要包括哪些文件?我需要舱单吗?如果是,我在哪里可以找到呢?总结我目前的发现,有四种选择: 为VC运行时提供指向MS下载页面的链接 将

我从Visual C++ 2010 Express切换到Visual C++ 2012专业版(Euler MaultToalbox)。为了兼容XP,我使用Visual C++ 2012的更新1的110-XP平台工具集。p>
在早期版本中,我在程序目录中添加了三个DLL文件MSV90*.DLL,并为它们添加了一个清单。对于Visual C++ 110,我也可以吗?我需要包括哪些文件?我需要舱单吗?如果是,我在哪里可以找到呢?

总结我目前的发现,有四种选择:

  • 为VC运行时提供指向MS下载页面的链接
  • 将VC运行时的安装程序添加到您的安装中
  • 将msvcr***.dll复制到您的程序目录
  • 使用静态库编译
  • 所有这些似乎都有效

    (1) 或者(2)不同版本的运行时显然存在问题。我们需要信任微软和程序开发人员保持兼容性

    (3) 存在您添加的dll必须在目标计算机上运行的问题


    我决定使用(4),因为它很有效。要尝试这个,在项目的C++ ->代码生成属性中设置<代码> /Mt<代码>。< /p>包括应用程序。使用软件包安装程序复制文件;不要自己复制它们。(因为你可能会意外地用旧版本覆盖新版本。)@RaymondChen-如果我能将你的评论投票100次,我会的。这是最好的方法。将其添加为答案,我将对此进行投票。请随意回答您自己的问题并接受它。您不再使用清单,它已随VS2010一起退役。只需将DLL与EXE一起复制到同一目录就足够了。还避免了Raymond的末日场景以及安装程序失败,因为有人安装了比您更新的版本,以及您的应用程序失败,因为它无法与新版本的某些原因。并且考虑用/MT构建,如果这仅仅是一个EXE,那么你根本不需要那些DLL。你列出的问题1, 2,而3不太有意义。对于1和2,维护兼容性不是负担,因为您编译应用程序的代码以针对特定版本的CRT,所以您知道它们是协同工作的。然后链接(或捆绑)此版本的CRT,无兼容性问题。对于3,我甚至不知道你所说的“你添加的DLL必须在目标机器上运行”是什么意思。这也不是问题,CRT在所有机器上都可以正常运行。如果没有,你就有更大的问题。如果您担心加载DLL的成本…对于1,您可能是对的,只要VC110运行时的所有版本都兼容。有不同的版本,不是吗?对于2,安装程序可能比当前版本旧,这是一个问题。如果您为您的程序选择了正确的版本(ARM、32位或64位),则大约3是正确的。我在这方面遇到了麻烦。