gpt4 book ai didi

c++ - 将非托管 C++ 库与 .NET API 结合使用

转载 作者:行者123 更新时间:2023-11-30 04:29:50 24 4
gpt4 key购买 nike

我有一个项目,我必须在其中使用 API 来读取专有文件类型的文件。它是闭源的,只是一堆 DLL,可以作为引用添加到我的项目中(目前我正在使用 C#)。但是,我还希望使用 C++ 库 OpenMS (http://open-ms.sourceforge.net/) 来管理和分析我获得的数据。我已经阅读了一些关于 P/Invoke 和创建包装器的内容(还有一些人建议使用其他方法,例如:http://www.codeguru.com/cpp/cpp/cpp_managed/interop/article.php/c6867)但我不确定我应该如何去做以及最好的方法是什么,尤其是大多数我看到的例子非常简单,这个库有很多复杂的数据类型等。由于库非常大,是否可以自动化创建包装器的过程?

最佳答案

您不添加非托管 DLL 作为引用;仅适用于以 .NET 语言编写的托管 DLL。

如果您使用的是 C#,P/Invoke 是您唯一的选择。是的,这样做的难度和消耗的时间会随着图书馆的复杂程度成比例增加。您将需要确保存在库使用的所有数据类型的托管等效项,如有必要,您自己明确定义它们。不幸的是,我不知道有什么方法可以自动执行此过程。

如果切换到 C++/CLI 是一个选项,您将有更轻松的时间,因为您可以直接使用非托管库,将其与您的 .NET 代码混合。

关于c++ - 将非托管 C++ 库与 .NET API 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9090400/

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