【发布时间】:2012-07-03 10:33:15
【问题描述】:
尝试构建 C# NPAPI 插件我发现了一个tutorial,它描述了您的 dll 需要实现许多方法,例如 NP_GetEntryPoints 、 NP_Initialize 和 NPP_New 以及其他一些方法。
但是我想了解的是,如果我可以简单地镜像这些方法名称并在 C# 中构建文章中描述的等效数据结构(如_NPPluginFuncs),那么一切都会正常工作吗?
有人可以提供一些指导吗?是否可以在 C# 中构建 NPAPI 插件,如果可以,涉及的基本步骤是什么?
【问题讨论】:
-
我不能具体给你一个关于NPAPI的详细答案,但总的来说,使用C#创建一个与C兼容的导出函数的DLL是不可能的。您可以 1)创建一个混合模式 C++ DLL,或者(如果您更熟悉 C# 而不是托管 C++)2)创建一个包含导出的小型本机 DLL,它使用 COM 互操作委托给编写的托管程序集在 C# 中,其中包含您的大部分功能。
-
现在这基本上是一个答案。我认为在更糟糕的情况下,某种类型的互操作是可能的(尽管对 C++ 的了解不足以假设 COM),但我也认为 C++ 和 C# 之间的互操作会有一条更简单的路径
-
P/Invoke 很棒,但另一个方向的互操作仍然很痛苦,恐怕:P
-
看起来很有趣的项目here,如果你不介意依赖它,它可以让生活变得更轻松。
-
有没有办法在这些答案之间分配赏金?不确定要标记哪一个正确。谢谢你们!