![]() |
1
10
我全心全意地参加了推荐活动 不 手动更改所链接的CRT版本。但是,如果出于某种原因(我无法想象),这对你来说是正确的行动方针,那么改变 manifest 为你的项目。 首先确保清单 不 在每个生成上生成(在VS2005上:配置属性/linker/manifest文件/generate manifest),因为它将覆盖您的手动更改。同时确保已启用隔离。 接下来,找到清单文件-应该在$(intdir)处(例如,debug)。您应该看到一个类似于-
(当然,对于调试版本)。您需要编辑crt元素的version和publickeytoken属性。 您可以检查本地windows\winxs文件夹中的文件,以查看可用的版本。检查 here 如何在找到所需版本后提取PublicKeyToken。(尽管我首先尝试直接查看其他项目的清单,链接到您想要的CRT版本)。 如果你真的去了那里,就等着喝些粗暴的水吧。如果您的应用程序是一个控制台应用程序,不与其他并行组件(MFC、OpenMP等)链接,那么您可能会有一些运气。如果您的应用程序非常重要,那么如果在SXS组件中没有复杂的版本依赖关系,我会感到惊讶。 (编辑)您还需要将您使用的特定CRT与应用程序一起分发。这里是 someone 是谁干的 |
![]() |
2
2
最简单的方法是用一个使用与TFS兼容的CRT的VC++版本构建DLL。 我不认为将DLL链接到不同版本的CRT是个好主意,除非您也使用相同版本的头文件。最简单的方法是使用正确的VC++版本… 如果您仍想尝试,可以:
您还可以尝试在“工具->选项->项目和解决方案->VC++目录->库文件”中更改默认目录。也许将$(vcinstalldir)lib更改为CRT的其他版本所驻留的路径就可以了。 |
![]() |
3
0
不要试图使用VS9并链接到CRT的另一个版本。 如果您需要您的应用程序链接到另一个CRT,例如VS8的CRT,那么您必须编译并链接该版本的VS中的应用程序。 |
![]() |
4
0
该解决方案适用于我的Visual Studio Express 2013 x64+OpenCv 2.4.9 x64编译、调试(我在LV2013 x64中集成了该解决方案),但它适用于任何其他VS版本: 1)右键单击解决方案>属性>调试源文件… 2)可能有两个实体(取决于您的vs安装目录)。 C:\程序文件(x86)\Microsoft Visual Studio 12.0\Common7\IDE\VC7\ATLMFC C:\程序文件(x86)\Microsoft Visual Studio 12.0\Common7\IDE\VC7\CRT 有了这些,它将适用于Visual Studio 2013学习版,但也适用于其他2013版。如果您有Visual Studio 10或11,只需分别键入“Microsoft Visual Studio 11.0”或10.0即可。您也可以添加它们。 这些条目可以从解决方案>属性>调试源文件(如上所述)下的opencv.sln中获得。如前所述:CRT需要匹配…而这发生在那个地方。 |
![]() |
Willy · LINQ:将分组列表转换为新列表 7 年前 |
![]() |
Kapil · 如何使用参数设置脚本任务SSI的路径 7 年前 |
![]() |
c00000fd · 跨命名空间和不同的.H文件的友元类 7 年前 |
![]() |
tangoal · 调用模板类成员时非法使用此类型作为表达式 7 年前 |