系统DLL如何与Visual Studio的不兼容版本一起使用?

玛雅刀

Visual Studio 2015和2012具有不兼容的C运行时库。如果我尝试将2015年构建的应用程序与使用2012年构建的链接库进行链接,则会出现链接器错误。

但是,我可以将2015和2012应用程序都链接到系统库,例如OpenGL32.dll。他们如何实现这一目标?

仅仅是静态链接到CRT(例如/ MT而不是/ MD)的问题吗?当我尝试时,仍然会出现链接错误。

索罗尼尔·海蒂尔

如果您所指的错误是c ++使用的未修饰修饰名的未定义引用,则它对其他库起作用的原因是它们仅导出C接口。即使在系统库导出多态对象的地方(例如在COM中),它们也可以通过C语言接口来导出。是的,如果其他库没有抱怨自己的未定义引用,则它们已静态链接到运行时。

此外,MSVC还具有目标文件和链接器扩展名,可防止依赖于C ++运行时的链接目标文件与库的其他版本一起使用。即使从源代码构建代码,然后针对新的运行时进行链接,代码也可以正常工作。如果从源代码重建对象,则很容易以不兼容的方式更改对象,有时甚至不更改代码也是如此。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使Lombok与Visual Studio Code一起使用?

“获取”如何了解与远程存储库一起使用的版本控制系统?

无法将 .NET Core 5.0 应用程序与 Visual Studio Community 2019 版本 16.7.5 一起使用

如何检测与木偶一起使用的Chrome版本?

TFS 2015如何与版本管理一起使用

如何使版本化的KV商店与VaultPropertySource一起使用

如何指定与sbt 0.12.4一起使用的Java版本?

Airwatch:它如何与版本一起使用?

我可以将Visual Studio的Assisted IntelliSense与ReSharper的建议系统一起使用吗?

C ++:dll在Visual Studio 2017上不起作用,但可与g ++一起使用

通过Visual Studio与ServiceFabric一起使用服务部署其他DLL

将XUnit与Visual Studio Online一起使用

Visual Studio Express是否可以与Wine一起使用?

试图让PHP XDebug与Visual Studio Code一起使用

使打字稿与Visual Studio 2015 RC一起使用?

如何使用C#设置Selenium与Visual Studio .NET一起使用?

如何配置Araxis Merge与Visual Studio Git一起使用?

Visual Studio的发布管理-管道如何与DEV / QA / Production分支一起使用?

如何安装Windows 10 SDK以与Visual Studio 2017一起使用

如何将MySQL与Visual Studio 2012 Lightswitch一起使用?

如何告诉Visual Studio将WinMerge与Git一起使用?

如何将FSharp.Core 4.3与Visual Studio 2015 Community Edition一起使用

如何从Visual Studio编辑器中检索文本以与Roslyn SyntaxTree一起使用?

与Unity 3D一起使用时,Visual Studio中缺少添加引用-Need Npgsql.dll

如何使Go测试与文件系统一起使用

将Entity Framework与现有的ORACLE DB一起使用。Visual Studio 2012和不建议使用的ODP.NET驱动程序

如何与Visual Studio 2017一起安装LocalDB 2016?

Visual Basic SplashScreen不能与版本选择表单一起使用

如何使用Selenium与ChromeDriver一起运行Chrome Beta版本?