Столкнулся с такой проблемой.
При создании новой карты с новой проекцией фф-я: mapCreateMapEx.
После того, как карта создана и перенесены туда все элементы возникает ошибка:
"Access violation at addree 02216763 in module 'MAPACCESS.DLL'. Read of address 30303034"
Привожу код:
xml откуда читаю первую проекцию:
[CODE]
<?xml version="1.0" encoding="UTF-8"?>
<ProjectList Version="1.0">
<Project Name="Postel Equidistant Azimuthal" Comment="Postel Equidistant Azimuthal" EPSG="2039">
<Projection Type="Postel Equidistant Azimuthal"
CentralMeridian="38"
LatitudeOfOrigin="55"
StandardParallel1="70"
EllipsoideKind="9"
ScaleFactor="1.0000000"
DataProjection="1"/>
</Project>
<Project Name="LatitudeLongitude" Comment="LatitudeLongitude" EPSG="2039">
<Projection Type="LatitudeLongitude"
ScaleFactor="1.0000000"/>
</Project>
....
</ProjectList>
[/CODE]
Как считываю:
[CODE]
...
DATUMPARAM datum;
ELLIPSOIDPARAM ellparm;
MAPREGISTEREX mapreg;
Projection pr;
char name[256];
wrapper->mapMapRegisterListParameters(mapReg, i, &mapreg, &datum,
&ellparm);
pr.mapreg = mapreg;
pr.ellparm = ellparm;
pr.datum = datum;
pr.number = mapreg.MaterialProjection;
...
[/CODE]
Как создаю: в mapreg находятся все параметры первой проекции из xml + автоматически заполняются остальные поля
[CODE]
PanoramaProjection::createNewMap(QString newPathMap, QString classifier, MAPREGISTEREX mapreg)
{
...
mapreg.Scale = map->getScale();
mapreg.FlagRealPlace = -1;
strcpy(mapreg.Name, "world");
strcpy(listreg. ListName, "world");
strcpy(listreg.Nomenclature, "mapFile");
wrapper->mapSetFileNameFromNomenclature(listreg.FileName, sizeof(listreg.FileName),listreg.Nomenclature);
wrapper->mapCalcTopographicSheet(0, (MAPREGISTER*)&mapreg, &listreg);
hmap = wrapper->mapCreateMapEx(cArrayMap,cArrayClassifier, &mapreg, &listreg);
...
[/CODE]
В чем тут может быть проблема?
И еще. Не нашел функцию вывода названия проекции на Руссом языке. Она присутствует? Или как это можно сделать при помощи xml файла конфигурации (если можно).