On 10/04/2013 2:25 PM, brian avants wrote:
hi simon
thank you for your questions ---- answers here:
I won't answer your question directly but some suggestions:
> a) does adding PACKAGE="ANTsR" to .Call change anything? (It should really
> be there if you are using strings as names)
>
this does change things .... for instance, this works:
library(ANTsR)
filename<-getANTsRData('r16')
.Call("antsImageRead", filename,'double',2) # Succeeds!
.Call("antsImageRead", filename,'double',2,PACKAGE=ANTsR) # Fails!
# Error in .Call("antsImageRead", filename, "double", 2, PACKAGE = "ANTsR")
:
# "antsImageRead" not available for .Call() for package "ANTsR"
That makes it look as though it is finding that entry point somewhere
other than in the ANTsR.{so|dll} file installed with the package.
the problem is when we call this function:
antsImageRead <- function( filename , dimension , pixeltype = "float" )
{
rval <- (.Call("antsImageRead", filename, pixeltype, dimension))
return(rval)
}
That's the one where you should be using the PACKAGE declaration.
the we get the error antsImageRead not resolved from current namespace ,
e.g.:
> antsImageRead(filename,2)
Error in .Call("antsImageRead", filename, pixeltype, dimension) :
"antsImageRead" not resolved from current namespace (ANTsR)
>
b) you may want to consider use the more efficient registration - either
> explicit or in NAMESPACE - so in your case you could use
> NAMESPACE: useDynLib(ANTsR, antsImageRead, ...)
> foo.R: .Call(antsImageRead, ...)
>
yes - we have all of our shared libraries registered in the NAMESPACE file
e.g.
useDynLib(libRantsImageRead)
But this doesn't register the entry point. List it explicitly, and it
will create an object called antsImageRead in the package namespace that
has entry point information.
Duncan Murdoch
etcetera ....
[[alternative HTML version deleted]]
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel