【问题标题】:How to access a SDK from C#?如何从 C# 访问 SDK?
【发布时间】:2013-11-19 10:04:06
【问题描述】:

我收到了来自 3. 派对的 SDK。 SDK 提供了一大堆 .dll / .lib / .h 文件 但我无法从 C# 访问任何文件。

我尝试添加 dll 作为对我的 C# 项目的引用,但它弹出并显示: “无法添加对 'xxx.dll' 的引用。请确保该文件可访问,并且它是有效的程序集或 COM 组件。”

而且我不确定如何使用 .lib / .h 文件来访问 3.party SDK。 SDK 附带一些用 C 编写的示例代码,这些代码使用 .lib/.h 文件访问 SDK。

如何从 C# 访问 SDK?

【问题讨论】:

    标签: c# sdk setup-project


    【解决方案1】:

    如果提供给您的 SDK 只包含 .dll .lib 和 .h 文件,则表示这是一个原生库(C 或 C++ 库)。

    为了使用它,您应该有一个从这个 SDK 到您的托管 C# 代码的包装器。

    如果 SDK 中没有包装器,您应该通过 P/Invoke 自己制作一个。

    这是来自 MSDN 的关于 P/Invoke 的总结(不是 esaustive,只是为了给你一个想法): Platform Invoke Basics

    【讨论】:

    • 我打算将此作为评论添加到问题中,但在这里似乎更相关...Access a method from a DLL from C# program
    • 我已经完成了这项工作,非常感谢。但是,SDK 相当大,所以制作所有的包装器将是一件大事。是否有任何工具可以从 .h 文件创建 C# 包装器?我已经尝试过 SWIG (swig.org),但这要求我拥有我没有的 SDK 的源代码。
    • 我可以向您推荐的唯一工具是 [P/Invoke Interop Assistant ](clrinterop.codeplex.com/releases/view/14120)。对于一些复杂的 API 可能不准确
    • P/Invoke Interop Assistant 似乎不适用于我的 dll。
    猜你喜欢
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 2018-06-09
    相关资源
    最近更新 更多