On 19/01/2012 1:42 PM, Adrian Dragulescu wrote:
It doesn't work even if I set it with \\. My path has a mixture of \\ and
/ and other entries work fine.
if (file.exists("C:/Temp/XML.dll")) {
Sys.setenv(path = paste("C:\\Temp;C:/Temp;", Sys.getenv("path"), sep=""))
dyn.load("XML.dll") # doesn't find it!
}
Error in inDL(x, as.logical(local), as.logical(now), ...) :
unable to load shared object '//nas-msw-20/adrian/My Documents/XML.dll':
LoadLibrary failure: The specified module could not be found.
>
My home folder is on a network drive.
I really think you should follow the advice in ?dyn.load and use a full
path, or go to Microsoft's site and check the rules for how LoadLibrary
searches for DLLs.
Duncan Murdoch
Thank you,
Adrian
On Thu, 19 Jan 2012, Duncan Murdoch wrote:
> 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
>
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.