[Proj] Problems Migrating to .net 2.0

Scott Schulthess scott at topozone.com
Tue Feb 21 10:51:29 EST 2006


Hello,

 

I've recently moved my project from .net 1.1 to .net 2.0

 

I've tested this code on 1.1, but there are some added restrictions and
stuff that just won't compile in 2.0.  

 

This is the C# wrapper that I'm using

 


"Attempted to read or write protected memory. This is often an
indication that other memory is corrupt."


 

 

            public static int LLtoUTM(int datumIn, int datumOut, double
p_lat, double p_lon,ref double UTMNorthing,ref double UTMEasting,ref int
UTMZone)

            {

                  int errno;

                  //This is the formula for calculating which Zone a
point is in at a particular lat/long

                  int ZoneNumber = Convert.ToInt32((p_lon + 180) / 6) +
1;

                  double[] x = new double[1];

                  double[] y = new double[1];

                  double[] z = new double[1];

                  y[0] = p_lat*proj_api.Proj.DEG_TO_RAD;

                  x[0] = p_lon*proj_api.Proj.DEG_TO_RAD;

                  z[0] = 0.0;

                  IntPtr src0=
proj_api.Proj.pj_init_plus("+proj_api.Proj=latlong +datum=NAD27");

                  IntPtr src1 =
proj_api.Proj.pj_init_plus("+proj_api.Proj=latlong +datum=NAD83");

                  IntPtr dst0 =
proj_api.Proj.pj_init_plus("+proj_api.Proj=utm +zone=" + ZoneNumber + "
+datum=NAD27");

                  IntPtr dst1 =
proj_api.Proj.pj_init_plus("+proj_api.Proj=utm +zone=" + ZoneNumber + "
+datum=NAD83");

                  //This nice little bit of code below is designed to
execute pj_transfrom (the proj_api.Proj lib all around function)

                  //with the correct parameters so that a datumshift to
the correct datum is included.

                  if(datumIn==0)

                  {

                        if(datumOut==0)

                        {

                              errno = proj_api.Proj.pj_transform(src0,
dst0, 1, 1, x, y, z);//NAD27-NAD83

                        }

                        else

                        {

                              errno = proj_api.Proj.pj_transform(src0,
dst1, 1, 1, x, y, z);//NAD27-NAD27

                        }

                  }

                  else

                  {

                        if(datumOut==0)

                        {

                              errno = proj_api.Proj.pj_transform(src1,
dst0, 1, 1, x, y, z);//NAD83-NAD27

                        }

                        else

                        {

ERROR THROWN HERE    -> errno = proj_api.Proj.pj_transform(src1, dst1,
1, 1, x, y, z); //NAD83-NAD83

                        }

                  }

                  

                  proj_api.Proj.pj_free(dst1);

                  proj_api.Proj.pj_free(src1);

                  proj_api.Proj.pj_free(dst0);

                  proj_api.Proj.pj_free(src0);

                  UTMNorthing = y[0];

                  UTMEasting = x[0];

                  UTMZone = ZoneNumber;

                  return errno; 

            }

 

 


"Attempted to read or write protected memory. This is often an
indication that other memory is corrupt."


 

Any help would be appretiated.


Thanks!

 

-Scott

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/proj/attachments/20060221/45f6b1a7/attachment-0001.html


More information about the Proj mailing list