你能从CDLL调用C#DLL吗?我用C#构建了一个DLL。现在我想使用R环境调用该DLL中的函数。R环境支持调用非托管C/C++DLL,但不支持.NETDLL。所以我的问题是,我可以从C/C++DLL调用C#DLL中的函数吗?如果是这样,您是否有指向如何执行此操作的信息的链接?最直接的方法是将C#DLL中的C#类公开为COM对象,然后从C/C++DLL创建它的实例。如果这不是一个可接受的选项,您需要创建一个混合模式的C++DLL(包含托管和非托管代码)。您的C/C++DLL可以调用混合模式DLL中的导出函数,后者可以将调用转发给您的C#类。本文可能对您有所帮助:CLR托管API(MSDN)更新:有一个名为mergebin的工具,它随.NETSQLite包装器一起提供,可用于创建混合模式的本机/托管DLL。从以下位置获取源代码:SQLiteforADO.NET2.0(SourceForge)您将在bintools文件夹中找到该exe。KeV其实很简单。只需使用NuGet将“UnmanagedExports”包添加到您的.Net项目中。有关详细信息,请参阅https://sites.google.com/site/robertgiesecke/Home/uploads/unmanagedexports。然后您可以直接导出而无需执行COM层。这是示例C#代码:使用系统;使用System.Collections.Generic;使用System.Linq;使用System.Runtime.InteropServices;使用系统文本;使用System.Threading.Tasks;使用RGiesecke.DllExport;类测试{[DllExport("add",CallingConvention=CallingConvention.Cdecl)]publicstaticintTestExport(intleft,intright){returnleft+right;R应该能够像普通的Cdll一样加载TextExport。C#学习教程就是这些:您可以从CDLL调用C#DLL吗?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
