Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中调用作为C#.net COM dll文件提供的SDK_.net_R_Dll_Com - Fatal编程技术网

如何在R中调用作为C#.net COM dll文件提供的SDK

如何在R中调用作为C#.net COM dll文件提供的SDK,.net,r,dll,com,.net,R,Dll,Com,我将自己描述为一个中级R用户,但完全是一个C/C+/C#新手。我当前的任务是使用供应商提供的SDK从商业系统中提取数据。这是一个dll文件,我还有一些C+和C#代码的文档和示例 从R调用这些C函数并获取数据的最佳方法是什么。有人能推荐一些好的(介绍性的)阅读材料或示例吗?根据dll文件(.NET或非(.NET),您可以从.NET中访问其函数。如果无法使用.NET,则需要interop从C#中调用函数: 关于R和C#:这里有一个指针,用于从C#内部调用R:您可能会注意到,不幸的是,当我切换到Jav

我将自己描述为一个中级R用户,但完全是一个C/C+/C#新手。我当前的任务是使用供应商提供的SDK从商业系统中提取数据。这是一个dll文件,我还有一些C+和C#代码的文档和示例

从R调用这些C函数并获取数据的最佳方法是什么。有人能推荐一些好的(介绍性的)阅读材料或示例吗?

根据dll文件(.NET或非(.NET),您可以从.NET中访问其函数。如果无法使用.NET,则需要interop从C#中调用函数:

关于R和C#:这里有一个指针,用于从C#内部调用R:您可能会注意到,不幸的是,当我切换到Java时,我没有维护这个主题


对于完全自动化的解决方案,您可以从C#内部调用SDK并将其传递给C#的R连接器。为了解决您的解决方案的灵活性,我建议在C语言中配置R代码。

查看RCPP包——我还没有机会自己尝试,但是它看起来是从R/P>调用C++的好方法。


-或在cran上,拥有供应商支持的SDK是一个良好的第一步。我已经从这一点开始了几次

一个问题可能是SDK很可能是用VisualStudio构建的。一般来说,很难在不同编译器之间混合C++代码(因为生成的代码在被破坏的函数签名中会有所不同)。所以这里可能不适合您,因为您可以使用兼容的库

另一方面,C可以工作。仍然存在一些问题,因为您可能需要创建一些附加文件,以使Visual Studio创建的库与必须与R一起使用的MinGW链接器兼容。详细信息请访问MinGW网站。现在,C是一个比C++更复杂的接口,但至少你有机会让它工作。多年前,我使用这种方法,使用Bloomberg C SDK将R连接到Bloomberg终端后端(而当前的包使用Java)


最后,C#和(D)COM路线可能适用于,但我在这方面没有经验。

您可以将此作为两个阶段来完成。首先,编写一个小C#程序,从dll中检索数据(例如,请参阅),并将其写入文本文件。然后从文本文件中导入数据并在R中进行分析。

我更希望在大多数R代码中封装一点C代码,而不是相反。。。但是乞丐不能挑肥拣瘦!感谢您提供的插件,但这不太可能有帮助,因为提供的SDK可能与MinGW工具链中的g++不兼容,请参阅我的答案以了解更多信息。