Well here is my newb problem:I have a random generator class written in c++ (numerical recipes).In c# i add a class item RG.cs and then i am confused.Do i copy and paste everything from the .h file and the .cpp file of my c++ class?When I do that I get a lot of errors.What transformation do i have to do? Another question is how can i declare in c# a method that in c++ would be double ran2(long&);?Here is the .h file://------------------------class Rand{ public: // default constructor generates 1st random number and stores it in r Rand(long); // returns a uniform Random deviate between 0.0 and 1.0 double ran2(long&); // Generates a new random number, stores it in r and then returns r double NewRand(); // returns a random number double GetRand(); private: // seed long num; // random number double r;} ;//----------------------here is the .cpp fileRand::Rand(long dummy){ num = -dummy; // Initialize random number generator ran2(num); // stores random number in r r = ran2(num);}// returns random numberdouble Rand::GetRand(){ return r;}// generates new random number, stores in r and then returns rdouble Rand::NewRand(){ r = ran2(num); return r;}double Rand::ran2(long& idum){ const long IM1=2147483563; const long IM2=2147483399; const double AM=(1.0/IM1); const long IMM1=(IM1-1); const long IA1=40014; const long IA2=40692; const long IQ1=53668; const long IQ2=52774; const long IR1=12211; const long IR2=3791; const long NTAB=32; const long NDIV=(1+IMM1/NTAB); const double EPS=1.2e-7; const double RNMX=(1.0-EPS); int j; long k; static long idum2=123456789; static long iy=0; static long iv[NTAB]; double temp; if(idum <= 0) { if(-(idum) < 1) idum = 1; else idum = -(idum); idum2 = (idum); for(j=NTAB+7;j >= 0;j--) { k=(idum)/IQ1; idum=IA1*(idum-k*IQ1)-k*IR1; if(idum < 0) idum+=IM1; if(j < NTAB) iv[j] =idum; } iy = iv[0]; } k = idum/IQ1; idum = IA1*(idum - k*IQ1) - k*IR1; if(idum < 0) idum += IM1; k = idum2/IQ2; idum2 = IA2*(idum2-k*IQ2)-k*IR2; if(idum2 < 0) idum2 += IM2; j=iy/NDIV; iy=iv[j]-idum2; iv[j] = idum; if (iy < 1) iy += IMM1; if ((temp = AM*iy) > RNMX) return RNMX; else return temp;}//------Thanks all!