3 个版本

使用旧的 Rust 2015

0.1.2 2022年11月30日
0.1.1 2022年2月15日
0.1.0 2019年1月16日

开发工具 中排名 #1633

Download history 19405/week @ 2024-03-14 21463/week @ 2024-03-21 20227/week @ 2024-03-28 21870/week @ 2024-04-04 23728/week @ 2024-04-11 22297/week @ 2024-04-18 22757/week @ 2024-04-25 23491/week @ 2024-05-02 24550/week @ 2024-05-09 24514/week @ 2024-05-16 24814/week @ 2024-05-23 27683/week @ 2024-05-30 24772/week @ 2024-06-06 26697/week @ 2024-06-13 25418/week @ 2024-06-20 22196/week @ 2024-06-27

每月下载量 104,419
155 个 crate 中使用(通过 vswhom

MIT 许可证

28KB
326

vswhom-sys.rs TravisCI 构建状态 AppVeyorCI 构建状态 许可

Jon Blow 的 VS 发现脚本 的纯 FFI。

请注意,原生代码 在某些情况下被发现会导致内存损坏

文档

特别感谢

在 Patreon 上支持进一步开发的所有人,特别是

  • ThePhD
  • Embark Studios
  • Jasper Bekkers

lib.rs:

Jon Blow 的 VS 发现脚本 的纯 FFI。

本 crate 的其余文档几乎直接从原始 C++ 源代码复制。

如何使用此代码

此文件的目的是在 Windows 上查找包含您可能需要链接的库的文件夹,如果您正在与任何编译的 C 或 C++ 代码链接。这对于许多希望提供兼容性的非 C++ 编程语言环境是必要的。

我们找到 Visual Studio 库所在的位置(例如,libvcruntime.lib),链接器和编译器可执行文件所在的位置(例如,link.exe),以及 Windows SDK 库所在的位置(kernel32.lib,libucrt.lib)。

我们都希望您不必担心这么多奇怪的依赖关系,但遗憾的是我们真的别无选择。

我并不声称这是解决这个问题的绝对最佳方式,到目前为止,我们只是简单地处理这些问题(如果你安装了多个版本的Visual Studio,我们将返回第一个而不是最新的)。但这种方式可以简单有效地解决你的基本问题,而且由于这里代码不多,修改和扩展都很方便。

以下是你需要了解的API

调用vswhom_find_visual_studio_and_windows_sdk(),查看结果路径,然后对结果调用vswhom_free_resources()

在添加这些注释之前,这个文件大约有400行。你可能认为,做这样简单的事情需要这么多代码是非常多的。我同意。然而,微软自己针对这个问题的解决方案,称为“vswhere”,只是一个八千行的程序,分布在70个文件中,他们不无讽刺地将其发布到github。

这不是我编造的:https://github.com/Microsoft/vswhere

因此,有几个人发现有必要自己解决这个问题。在决定做什么的时候,我们参考了这些其他解决方案,其中最突出的是Ryan Saunderson的ziglang版本。

我讨厌这种代码。我们之所以必须这样做,本身就很愚蠢,而我们实际上需要采取的操作只是痛苦。如果编程总是这样,我会放弃。

我采取的另一个快捷方式是,这个程序硬编码为返回x64库的文件夹。如果你需要x86或arm,你可以对下面的代码进行轻微的修改,或者,如果足够的人想要这个,我可以在这里进行修改。

依赖项

~47KB