我有一个非托管 (C/C++) DLL,我需要从 C# 应用程序调用它。
DLL 调用需要将数据(从 DLL 创建的 C++ 类)返回到 C# 应用程序。
我可以控制 DLL 的导出函数,因此我可以在必要时围绕 C++ 类创建一个包装器。我知道如何使用 p/Invoke 访问 DLL,所以我只是在寻找一些关于如何返回数据的指导。
从 DLL 接收到的数据是一系列键值对,所以我在考虑返回一个 JSON 字符串并使用 Json.NET 将其反序列化为一个对象。
从 C#/.NET 应用程序的非托管源访问此类数据的首选方法是什么?
最佳答案
如果您能够修改 C++ DLL,那么 C++/CLI 可能是最干净的。您将能够直接用 C++ 编写一组 .NET 包装器类,而无需编写单独的 P/Invoke 声明。
关于c# - 如何从 C# 访问非托管数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3425907/