[R] cannot dyn.load dll from path

Duncan Murdoch murdoch.duncan at gmail.com
Thu Jan 19 19:28:54 CET 2012


On 19/01/2012 11:19 AM, Adrian Dragulescu wrote:
> Hello,
>
> I'm on Windows, and according to the documentation R searches along the
> search path when looking for dll's for dyn.load.
>
> For illustration, I've copied the XML.dll from package XML in the C:/Temp
> folder
>
>     if (file.exists("C:/Temp/XML.dll")) {
>       Sys.setenv(path = paste("C:/Temp;", Sys.getenv("path"), sep=""))
>       dyn.load("XML.dll")   # doesn't find it!
>     }
>
>
>     head(strsplit(Sys.getenv("path"), ";")[[1]])  # C:/Temp is there
>
>     dyn.load("C:/Temp/XML.dll")  # works fine
>
> Am I misreading the documentation?

I believe that search is done by Windows, and different versions are 
very inconsistent about search order.  However, one thing I would guess 
is that recent versions would require backslashes rather than forward 
slashes in PATH.  When R gets a path, it generally translates the 
slashes, but if you're relying on Windows to do it, you're stuck with 
what they decide to do.

Duncan Murdoch



More information about the R-help mailing list