Отправил .
05.10.2015 14:54:42
Отправил .
|
|
|
|
06.10.2015 08:47:53
Приняли. Разбираемся.
|
|
|
|
08.10.2015 11:16:30
Разобрались... Господа разработчики, лучше бы вы не позорили себя!
Частную переписку с (сами знаете кем) тут не цитирую. То, что ОН мне выслал - не комментирую. Не хочу быть забаненным из-за ненормативной лексики. Очень надеюсь, что кто-то более квалифицированный таки найдёт время и разберётся в проблеме. --- Включил в Билдере отладку под GodeGuard - даже не смог попасть в свою DLL. EAV по утечке памяти выдала Панорама при попытке вызова задачи...
Изменено: |
|
|
|
09.10.2015 11:15:05
CodeGuard корректно работает только, если вся цепочка вызываемых библиотек и EXE собраны под CodeGuard.
Кроме того, мы применяем тип __int64, который просто вешает CodeGuard. |
|
|
|
10.10.2015 16:20:21
Ответ по САБЖУ будет?
--- Для тех, кто не знает, что такое CodeGuard. Это встроенная в C++ Builder'ы утилита, позволяющая ловить (в частности) утечки памяти типа динамический объект создан, но не удалён. CG в протоколе так и пишет - объект (модуль, строка) размером ... байт создан но не удалён. Очень полезная штука. Используется исключительно при отладке. Не только потому, что требует наличия соответствующей DLL, но и потому, что здорово тормозит сам процесс. Поэтому при отладке конкретной DLL CG подключается именно для неё. А вызывающее DLL приложение может быть написано хоть на языке ассемблера. Ему (приложению) по барабану, на чём и как собрана вызываемая DLL. Об этом давным-давно позаботился Марек Збиковски (автор EXE-формата, если кто не в курсе - любой EXE/DLL-файл начинается с символов MZ ).
Изменено: |
|||||
|
|
10.10.2015 18:19:45
Объясняю ещё раз, члено и раздельно - мне не нужен пример чистого вызова LoadMapToPicture() с получением её результата. Мне нужно объяснение, почему при запуске цепочки ВАШИХ функций последняя из них, LoadMapToPicture(), создаёт иксепшн в ядре (mapaccess.dll).
Для новичков в программировании - если в функции возникает EAccessViolation (EAV, исключение, искепшн, етс...), то результат она не вернёт. Никогда и никому. Потому, что она рухнула. ---
Изменено: |
|||
|
|
13.10.2015 13:37:25
Таймеры и их события удалил.
Загрузка библиотек и функций - динамическая, LIB-файлов в сборке нет, конфликт LIB и DLL исключён. Для чистоты эксперимента - снёс Панораму из Program Files... и установил её в C:\Panorama11. Запустил, получил ошибку для LoadMapToMap() - ошибка чтения HDR-файла. С чего бы это? Поменял на mapAppendData() - отработала ОК! Опции в окне трансформирования ввёл ручками, запустил, отработала ОК. LoadMapToPicture() снова выдала то же самое EAV. --- В аттаче исходники и данные. Если кто захочет попробовать - проект собран на C++ Builder 2010. Если есть только C++ Builder 6, то нужно закомментировать вызовы ::WideCharToMultiByte() и подставлять параметрами функций MapAPI непосредственно данные компонентов Билдера - что-то типа ListBox1->Items->Strings[i].c_str(). |
||||
|
|
|||
© КБ Панорама, 1991-2024 Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности |