我已经使用 C99 编写了一个简单的共享库,我想将它移植到 Windows。我的目标是提供一个已编译的 DLL,以便它可以用于使用各种旧版本的 Visual Studio(以及通过 p/invoke 的 C#)构建的应用程序。
我已经使用 Visual Studio 2015 Community 将其编译为 DLL。
但是,我得到的反馈是它只能在我的机器上运行,不能在其他机器上加载,因为它依赖于 VCRUNTIME140.DLL,它不是 Windows 的一部分。
据我所知,官方解决方案是告诉用户转到 microsoft.com,下载并运行 VS 可再发行组件包的安装程序。对我来说,这听起来像是一种非常糟糕的用户体验。那是真的解决方案吗?
我如何构建一个 DLL:
- 使用 C99,
- 与 Windows 7 及更高版本兼容——开箱即用,无需额外安装程序,
- 并且可以由使用 Visual Studio 2008 和更新版本构建的应用程序加载?
can be loaded by applications built using Visual Studio 2008 and newer?
这是您的答案的关键。您必须使用 Visual Studio 2008 进行编译。
用旧工具编译的二进制文件可以被新工具使用,但不能反向工作。
我是一名优秀的程序员,十分优秀!