gpt4 book ai didi

c# - 如何将 cpp/cli 文件显式链接到 c# 库 .dll?

转载 作者:太空宇宙 更新时间:2023-11-03 10:49:04 24 4
gpt4 key购买 nike

我有一个 C++/CLI 库,它又调用一个 C# 库。很好,它是隐式链接,与世界一切都很好。但是由于各种原因,我们的自动构建过程并没有让这些库得到完美的处理,并且这些库找不到彼此,除非我们将这些库移动到我们不想让它们进入的位置,也不想折叠到我们的构建过程。

有人向我建议我们/我可以编写一个使用 XCOPY 的构建后事件。但可以说我们不想那样做。

另一个建议是显式加载 dll。 Windows 表示要显式链接“应用程序必须进行函数调用以在运行时显式加载 DLL”。问题是微软的例子不足以让我的小脑袋理解如何进行这个想法。更糟糕的是,我能找到的唯一例子已经过时了。也许我没有使用正确的搜索词,但我很难用谷歌找到更多关于它的信息。

我们如何将 c++/Cli 库显式链接到 C# .dll?

----编辑

好的,我们如何将使用 __declspec() 导出库的 C++/CLI 代码显式链接到 C# .dll。

最佳答案

没有“C++/CLI 库”之类的东西,只支持程序集。没有显式或隐式链接,绑定(bind)总是在运行时发生。程序集由 CLR 在运行时找到,它用于定位它们的规则在 MSDN library 中有详细描述。 .

在开发代码时,将所有依赖项复制到与 EXE 相同的目录中是明智的做法。构建系统很好地支持,但是 C# 和 C++ 规则不同。 C++ 项目构建到解决方案的调试目录,C# 项目构建到 EXE 项目的 bin\Debug 目录。所以,是的,通常需要更改 C++ 项目的输出目录设置或使用构建后事件复制文件才能将所有内容放在一起。

关于c# - 如何将 cpp/cli 文件显式链接到 c# 库 .dll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22204602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com