小编典典

是否可以像VS C ++一样从C#DLL导出函数?

c#

在VS C / C ++中,您可以使用extern "C" __declspec(dllexport) -function declaration-

如何在C#dll中完成此操作?是否有与上述代码等效的C#代码?

编辑:更多信息

我正在尝试为Notepad 创建外接程序,但我想使用C#,但到目前为止,我常见的方法是在上述调用中使用旧版C 代码,以导出Notepad
++希望导入的一些功能,呼叫。有一个使用C#的示例应用程序,但是仍然需要一个加载器DLL,我从下面的评论/答案中认为这是C#的唯一方法。


阅读 346

收藏
2020-05-19

共1个答案

小编典典

非托管出口 =>
https://sites.google.com/site/robertgiesecke/Home/uploads/unmanagedexports

DLLExport =>
https://github.com/3F/DllExport

它是如何工作的?

创建一个新的类库或继续使用现有的类库。然后添加UnmanagedExports
Nuget包

这几乎是所有必需的设置。

现在,您可以编写任何类型的静态方法,[DllExport]用本机装饰它并从本机代码中使用它。
它的工作方式与DllImport一样,因此您可以使用来自定义参数/结果的编组MarshalAsAttribute

在编译期间,我的任务将修改IL以添加所需的导出…

2020-05-19