gpt4 book ai didi

c# - 从 Dll 导出接口(interface)。 C# Delphi VB C++ 等

转载 作者:行者123 更新时间:2023-12-03 18:22:23 35 4
gpt4 key购买 nike

我在 Delphi 中创建了一个应用程序,它能够从 dll 加载插件。该 dll 导出一个如下所示的函数

function GetPlugin: IPluginInterface;

IPluginInterface 是一个 ActiveX 类型库。我想因为我使用的是类型库,所以我可以使用 C# 或任何其他语言从 dll 导出 IPluginInterface,尽管经过一番谷歌搜索后我发现情况并非如此,因为有很多关于托管和非托管的讨论代码以及无法完成此操作的原因。所以我的问题是,我是否仍然能够在 C# 中创建一个插件来导出如上所述的函数?如果不能,除了 C++ 之外还有哪些语言可以做到这一点?

最佳答案

So my question is, am I still able to create a plugin in C# that will export a function like above? If not, what languages are able to do that apart from C++?

Windows 上的所有主流编程环境都可以生成和使用 COM 接口(interface)。 C、C++、C#、VB6、VB.net、Delphi 等。所以,是的,您可以使用 COM 接口(interface)来完成您的任务。

具体来说,您不能将 Delphi DLL 中的接口(interface)作为函数的返回值传递出去。那是因为Delphi uses non-standard semantics for function return values 。相反,您需要通过输出参数返回它。

所以你需要像这样编写你的GetPlugin:

procedure GetPlugin(out Plugin: IPluginInterface); stdcall;

关于c# - 从 Dll 导出接口(interface)。 C# Delphi VB C++ 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15052356/

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