Hi,

 

  I'am trying to use R in my Cpp project but I fail. 

 

 First I try to include R.h for loading statically R.dll but there is
conflict with windows definition of Error.

 

 Second, I try to use dynamically that Dll but, I can't use allocVector
(toto here). The error message said that I try to read a no allocate
zone.

 

This is my code.

 

typedef SEXP (*MYPROC)(SEXPTYPE,int);

MYPROC toto;

 

int _tmain(int argc, _TCHAR* argv[])

{  

      HINSTANCE hLib=LoadLibrary("R.DLL");

      if(hLib==NULL) {

           cout << "Unable to load library!" << endl;

           getch();

           return 0;

      }

      char mod[MAXMODULE];

      GetModuleFileName((HMODULE)hLib, (LPTSTR)mod, MAXMODULE);

      cout << "Library loaded: " << mod << endl;

      getch();

      toto=(MYPROC)GetProcAddress((HMODULE)hLib, "Rf_allocVector");

      if((toto==NULL)) {

           cout << "Unable to load function(s)." << endl;

           FreeLibrary((HMODULE)hLib);

           return 1;

      }

       SEXP ab;// = new SEXPREC;

       ab = (toto) (REALXP,2);

 

}

 

Third I have download R COM.

 

I' am looking for counsel. Am I compulsory to use   R com or not?

If not how can I improve my code?

Do you have an idea?

 

JBB

 

 


	[[alternative HTML version deleted]]


