尝试调用C+时出错+。R中的dll库 我有一个库,我们可以说:“代码> MyLaby.DLL,我想在R中运行C++代码。 dyn.load("mylibrary.dll") .Call("myfun")

尝试调用C+时出错+。R中的dll库 我有一个库,我们可以说:“代码> MyLaby.DLL,我想在R中运行C++代码。 dyn.load("mylibrary.dll") .Call("myfun"),r,dll,R,Dll,我得到: Error in .Call("myfun") : C symbol name "myfun" not in load table 现在,我已经看到了几个类似问题的答案,在这里和其他网站上,但是当我尝试每个解决方案时,每个似乎都需要访问原始源代码,例如添加这样的东西:外部> C“ > C++代码或以某种方式重新编译代码。我所拥有的只是一个.dll文件,我想直接使用它从R调用其中包含的函数 解决方案:函数的名称与我预期的不同。我转到Alexey在评论中建议的线程,从那里可以使用建议的工

我得到:

Error in .Call("myfun") : C symbol name "myfun" not in load table

现在,我已经看到了几个类似问题的答案,在这里和其他网站上,但是当我尝试每个解决方案时,每个似乎都需要访问原始源代码,例如添加这样的东西:<代码>外部> C“<代码> > C++代码或以某种方式重新编译代码。我所拥有的只是一个.dll文件,我想直接使用它从R调用其中包含的函数

解决方案:函数的名称与我预期的不同。我转到Alexey在评论中建议的线程,从那里可以使用建议的工具之一(DLL导出查看器)获得函数列表,在那里我找到了正确的名称


(唉,我现在需要弄清楚为什么在调用函数时R会锁定,但我这里的问题已经解决了!)

顺便说一下,当我运行第一行代码时,我得到了这样的消息:
警告消息:在inDL(x,as.logical(local),as.logical(now),…):DLL试图将FPU控制字从8001f更改为9001f
。我在其他地方看到可以忽略这一点。为什么不包括您的代码?您是否尝试过查看加载表?在Unix上,您会使用
nm
命令,但在Windows上……我不知道。也许可以试试线程上的一些东西?Rtools附带了
nm
,顺便问一下@nrussell,您希望我包括哪些代码?