如何在R中与DLL接口
How to interface with a DLL in R?
我从Matlab创建了dll扩展。然后,我想读取R.中的dll
我使用了dyn.load()
,但它不起作用。
你能给我一些建议吗?
源代码是用什么语言编写的?
问题在于混合编译器。Matlab dll很可能是由Visual Studio构建的。而且,由于函数标识符被破坏,您根本无法在不同的编译器之间混合C++代码。您可以通过一些工作来混合C对象代码。MinGW网站上有一些常见问题解答。
根据@Mario回答下方评论线程中的讨论:我建议您尝试进行比较(R CMD SHLIB
dll与Matlab dll),以帮助诊断问题。根据结果,我认为您需要弄清楚dll在C中的调用语法,并为其编写一个小的C包装器,该包装器使用该语法,但又可以使用R CMD SHLIB
。。。R CMD SHLIB --help
说,你可以在命令行上包括链接器选项(即,确保你正在将你的Matlab可调用dll与你的R-可调用dll链接),但我不确定确切的语法。研究一下R扩展手册的相关章节可能会有所帮助。
需要更多信息。通常的方法是这样的:
dyn.load("/path/to/library");
一些指针:
- 确保库的体系结构正确(例如"x86_64"与"i386"与"armv7")
- 请确保您没有试图在基于unix的计算机上加载windows".dll"(".so"、".dylib")
相关文章:
- C++ 多个 DLL 之间的共享接口
- 可视化 使用 C++ API 注册 COM DLL 的所有接口
- 如何从MFC DLL中获取与COM包裹的C#对象的接口
- 使用抽象接口C++ dll 边界 -标头中的智能指针>?叫删除?
- 当从一个应用程序调用时,在DLL方法中创建COM接口指针是有效的,但当从另一个应用软件调用时则无效
- 如何在C#中使用C++DLL导出的接口指针
- Visual C++ 中 DLL 的 DLL 导出和接口
- 在主应用程序中声明的 dll 中实现接口 - C++
- 使用 ATL 编译 dll,并将方法参数作为接口,但将它们作为 coclass 获取
- 运算符=不是DLL中导出的C++__接口的成员
- 我的Java GUI与我的超酷专有dll接口.如何防止第三方与此 dll 接口
- 从可锁定容器的DLL接口隐藏Boost::互斥
- std::字符串流类需要有dll接口
- 如何使用c#中的参数BSTR*和BSTR**来调用遗留的c++ DLL接口方法?
- c++ DLL接口和内存
- 在dll接口中使用静态类时消除C4251警告的一种方法
- 导出DLL接口中包含相同类的STL类成员
- 如何在R中与DLL接口
- C++具有非虚拟析构函数的 DLL 接口类
- 如何在我的dll接口或ABI中使用标准库(STL)类