在VS C / C ++中,您可以使用extern "C" __declspec(dllexport) -function declaration-。
extern "C" __declspec(dllexport) -function declaration-
如何在C#dll中完成此操作?是否有与上述代码等效的C#代码?
编辑:更多信息
我正在尝试为Notepad 创建外接程序,但我想使用C#,但到目前为止,我常见的方法是在上述调用中使用旧版C 代码,以导出Notepad ++希望导入的一些功能,呼叫。有一个使用C#的示例应用程序,但是仍然需要一个加载器DLL,我从下面的评论/答案中认为这是C#的唯一方法。
非托管出口 => https://sites.google.com/site/robertgiesecke/Home/uploads/unmanagedexports
DLLExport => https://github.com/3F/DllExport
它是如何工作的? 创建一个新的类库或继续使用现有的类库。然后添加UnmanagedExports Nuget包。 这几乎是所有必需的设置。 现在,您可以编写任何类型的静态方法,[DllExport]用本机装饰它并从本机代码中使用它。 它的工作方式与DllImport一样,因此您可以使用来自定义参数/结果的编组MarshalAsAttribute。 在编译期间,我的任务将修改IL以添加所需的导出…
创建一个新的类库或继续使用现有的类库。然后添加UnmanagedExports Nuget包。
这几乎是所有必需的设置。
现在,您可以编写任何类型的静态方法,[DllExport]用本机装饰它并从本机代码中使用它。 它的工作方式与DllImport一样,因此您可以使用来自定义参数/结果的编组MarshalAsAttribute。
[DllExport]
MarshalAsAttribute
在编译期间,我的任务将修改IL以添加所需的导出…