您好我正在尝试使用rcpp。为此,我想要一些cpp代码,它通过使用lib文件(与其名称相同)加载dll。我允许运行的代码是:
cppFunction(includes=c("#include "windef.h","#include \"C:/data/Rdata/IHUAPI.H\" "), 'int functietom(int a){long serverhandle;int lRet;lRet = ihuConnect ( "historian1",NULL,NULL, &serverhandle ); return 5;}', verbose
= TRUE)
我收到以下错误:
未定义引用`ihuConnect @ 16'colle2:ld返回1退出 status inDL中的错误(x,as.logical(local),as.logical(now),...):
无法加载共享对象 'C:/Users/user1663/AppData/Local/Temp/RtmpSW1Ki7/sourcecpp_1a04df63309/sourceCpp_26588.dll': LoadLibrary失败:
ihuConnect
函数位于ihuapi.lib
和ihuape.dll
个文件中。在Visual Studio中的c ++中,我添加了lib文件作为添加的依赖项,然后我摆脱了这个错误,因为我有时也会得到这个错误,然后就是我忘了在编译中添加lib文件。
因此,我的问题是:如何在编译中添加此lib文件作为选项。
当我使用dyn.load
时( “C:/data/Rdata/ihUAPI.dll”)
然后检查它是否已加载然后他说是 问题是getDLLRegisteredRoutines('ihUAPI',addNames = TRUE) 然后它说: 0列和0行的数据框
因此dll似乎不包含这些函数,但是当我从visual studio中使用它时它会这样做。
请为lib-files和ddl-files提供一些帮助
汤姆·万布克