Хорошо, напишите пожалуйста, как будет готова.
Еще заметили такую проблему, связанную с подключением: если воспроизвести ситуацию
Цитата |
---|
Андрей Лаптев написал: Если же на работающем компьютере остановить gsservice, то тогда при вызове функции mapAdjustData возникает штатный SIGPIPE и выводится ошибка "Ошибка соединения с Сервером, код ошибки - 111". После чего функция mapIsServerActiveEx(d->serverConnection) возвращает 0 и мы можем корректно обработать данную ситуацию. |
и после закрыть карту и соединение:
mapCloseData(d->hMap);
mapCloseConnect(d->serverConnection); // Возвращает 1
то при повторном подключении и открытии карты возникает segmentationFault:
1 TMapLink::GetMapSocket(int&) 0x7fffddf8dd28 2 TMapLink::Read(int, int, int, unsigned int, char *, int) 0x7fffddf94840
3 TMapRsc::OpenAliasRsc(wchar_t const *, int, unsigned long, int, char *, int) 0x7fffddd6f795
4 TRscList::OpenAlias(wchar_t const *, int, unsigned long, int, char *, int, int *) 0x7fffddf61cb4
5 TMap::OpenRsc(wchar_t const *) 0x7fffddf620f8
6 TMap::OpenMap(wchar_t const *, int, wchar_t const *, int, int) 0x7fffddf627ba
7 TMap::OpenData(wchar_t const *, int, wchar_t const *, int) 0x7fffddf63fa9
8 TMapControl::OpenMap(wchar_t const *, int, wchar_t const *, int) 0x7fffddceb754
9 TMapAccess::OpenMap(wchar_t const *, int, wchar_t const *, int) 0x7fffddcb84d9
10 TMapAccess::OpenData(wchar_t const *, int, long *, wchar_t const *, int) 0x7fffddcbb3ec
11 mapOpenAnyDataPro 0x7fffddcc1551
Если же перед закрытием карты очистить кэш через
mapClearDocCache(d->hMap);
то все отрабатывает нормально.
Но если вместо переподключения просто закрыть программу и заново запустить, то подключение к серверу и открытие карты пройдет нормально, т.е. проблема в переподключении в текущем сеансе.