dyn.load崩溃没有任何线索
我试图使用dyn.load
命令来加载外部DLL库,但每次运行该命令后都会关闭我的R会话。 我使用的是Windows 10,这里是我的R版本:
版本_
平台x86_64-w64-mingw32
arch x86_64
os mingw32
系统x86_64,mingw32
状态
重大3
次要1.3
2015年
03月
09日
svn rev 67962
语言R
version.string R版本3.1.3(2015-03-09)昵称Smooth Sidewalk
测试这个,这里是一个简单的代码来锁定屏幕使用Windows本机DLL:
dyn.load("C:WindowsSystem32user32.dll")
.Call("LockWorkStation")
它正在锁定我的屏幕,但是当我登录回来时,我的R会话正在崩溃。
dyn.load()
并不是一种通常加载DLL的方式,而是加载由R的编译器工具链创建的DLL,如Writing R Extensions手册中所述。
可以通过在Makevars.win文件中链接到它们来使用DLL
PKG_LIBS = -L$(XXX_DIR)/lib -lxxx
如1.2.1使用Makevars的末尾所讨论的,但这意味着在DLL周围编写C包装。
我不是Windows和R方面的专家,在R中依赖特定于平台的库是非常不寻常的,所以请用我的评论来评论一下。
如果我改变,似乎它会起作用。 .Call
.C
。 我的结论,如果你知道如何运行DLL函数(使用.Call
, .C
, .External
也许.Fortran
),你可以在河使用一般的DLL