gpt4 book ai didi

c# - 我可以在 .NET 中创建常规 Windows DLL(用于插件)吗?

转载 作者:太空狗 更新时间:2023-10-29 22:35:30 24 4
gpt4 key购买 nike

我正在尝试为一个程序创建一个插件。该程序通过加载您的插件 DLL 并在该 DLL 中执行特定命名的函数来工作。很标准的东西。但是,我想在 C# 中创建我的插件(我有点新手)。我的问题是,我可以从 C# 中导出类似 C 的常规函数​​吗?或如何轻松创建 stub 来执行此操作?

到目前为止,Google 没有任何帮助。

最佳答案

通过一系列相当复杂的步骤,我设法得到了我想要的东西:

在 C# 方面:

  1. 我创建了一个带有接口(interface)的 C# 类
  2. 让它在 COM 中可见,
  3. 使用强名称 key 文件对程序集进行签名
  4. 使用 gacutil 将程序集添加到 GAC
  5. 用REGASM工具注册并生成tlb类型库文件。

然后我创建了一个 MFC DLL,公开了我需要为插件接口(interface)导出的函数。然后在我的 C++ 代码中使用 #import 指令加载前面提到的 tlb 文件。这会生成一个 stub ,因此我可以轻松地通过 COM 从 C++ 调用我的 C# 代码。

结果似乎完美运行并且性能是瞬时的(这有点令人惊讶,我假设 CLR 加载开销会很明显)。

将 CLR 加载到这个特定的应用程序中并不是真正的问题,但我担心其他插件的版本控制问题。当我通过 COM 执行所有这些操作时,这真的是一个问题吗?

关于c# - 我可以在 .NET 中创建常规 Windows DLL(用于插件)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/404521/

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