[Rd] Portability of a C function
Christophe Genolini
cgenolin at u-paris10.fr
Sun Feb 14 22:18:08 CET 2010
Thanks, this helps a lot.
So if I understand correctly:
in package P1, I want to export printMatrix and printMatrixInt. In my
file P1.c, I have to add
void R_init_P1(DllInfo *info){
R_registerCCallable("longitudinalData","printMatrix",printMatrix);
R_registerCCallable("longitudinalData","printMatrixInt",printMatrixInt);
};
In P2.c, I have to add :
void R_init_P2(DllInfo *info){
printMatrix = R_GetCCallable("longitudinalData","printMatrix");
printMatrixInt = R_GetCCallable("longitudinalData","printMatrixInt");
};
I still have a problem here: "Writing R ext" say that 'printMatrix' and
'printMatrixInt' should have "an appropriate declaration". What is the
appropriate declaration?
Christophe
> Hello,
>
> This was discussed this week in the thread "LinkingTo and C++".
>
> It is possible, and documented in WRE section 5.4 :
> http://cran.r-project.org/doc/manuals/R-exts.html#Registering-native-routines
>
>
> Romain
>
> On 02/14/2010 12:58 PM, Christophe Genolini wrote:
>>
>> Hi the list,
>>
>> In a package P1, I write a function f1 in C, potentially an internal
>> function (not to be called from R).
>> In a package P2, I write a function f2 in C. The f2 function needs to
>> use f1 from P1. Is it possible ?
>>
>> --- 8< ---- In file P1.c ---------
>> double f1(x,y){
>> ....
>> }
>>
>> --- 8< ---- In file P2.c ---------
>> void f2(x,y,z){
>> double result;
>> ....
>> result = f1(x,y);
>> ....
>> }
>>
>> Thanks
>> Christophe
>
More information about the R-devel
mailing list