Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

CodeGuard и dll

1.1K
07 февраля 2005 года
teran
73 / / 15.04.2003
Вопрос такой, создаю DLL, добавляю к ней экспортируемую функцию (пустую), включаю CodeGuard, при запуске через rundll32 он выдает resource leak (память по адресу ... не была освобождена). Почему?

PS. DLL c поддержкой VCL, Dynamic RTL выключен.
310
08 февраля 2005 года
fellow
853 / / 17.03.2003
Это нормально.
Включи Dynamic RTL, не будет resource leak.
285
09 февраля 2005 года
Romik
479 / / 24.11.2002
Цитата:
Originally posted by fellow
Это нормально.
Включи Dynamic RTL, не будет resource leak.



А у меня вообще не хочет без CodeGuard компилится. Выдаёт unresolvet externol _CG_чёто там. (BCB6)

Странно всё это. И когда я использовал NuMega BoundsChecker, так тот вообще меня обматерил, мол у тебя память горными потоками утекает, хотя в Builder ни одной ошибки от CodeGuard. Странно всё это

310
10 февраля 2005 года
fellow
853 / / 17.03.2003
Цитата:
Originally posted by Romik
А у меня вообще не хочет без CodeGuard компилится. Выдаёт unresolvet externol _CG_чёто там. (BCB6)

Странно всё это. И когда я использовал NuMega BoundsChecker, так тот вообще меня обматерил, мол у тебя память горными потоками утекает, хотя в Builder ни одной ошибки от CodeGuard. Странно всё это


У меня пятый. Ошибки с "unresolvet externol _CG_чёто там" у меня иногда бывают, если после отключения CodeGuard в опциях проекта я не делаю полный билд проекта, а просто запускаю по F9. Также бывает полезно грохать промежуточные файлы компилятора и линкера.

Действительно, странно :)

1.1K
10 февраля 2005 года
teran
73 / / 15.04.2003
Билдер шестой, включение Dynamic RTL не помогло, отключение VCL тоже. Это только у меня так?
259
10 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:

У меня пятый. Ошибки с "unresolvet externol _CG_чёто там" у меня иногда бывают, если после отключения CodeGuard в опциях проекта я не делаю полный билд проекта, а просто запускаю по F9. Также бывает полезно грохать промежуточные файлы компилятора и линкера.
Originally posted by teran
Билдер шестой, включение Dynamic RTL не помогло, отключение VCL тоже. Это только у меня так?


У меня без CodeGuard все нормально компилится. Ты dll в отдельном проекте создаешь? или вместе с прогой. Если вместе с прогой, то нужно заводить прожект груп, состоящий из двух проектов: 1 - dll, 2-прога. Сначала становишься на первый, делаешь маке прожект. Потом дабл-клик на второй и ран уже второго.
ЗЫ: такая ошибка возникает, когда ты dll по F9 пытаешься запустить. Точнее из dll exe-шник сделать.

2 teran. Я боюсь, что это связано с особенностями работы с динамической памятью самого Борланда. И вообще Билдер и Микрософт использую разные форматы dll. Это может быть связано с этим. Попробуй сделать прогу в билдере и вызови функцию оттуда, а не по rundll. Думаю, что утечки во втором случае не будет, поскольку application освобождает всю памаять при выходе.

1.1K
10 февраля 2005 года
teran
73 / / 15.04.2003
Пробовал и отдельную прогу делать (билдеровскую),то же самое.

PS. А на счет того, что форматы разные, то при создании DLL есть галка VC++ style. Ну так вот, она тоже не помогла.
259
10 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by teran
Пробовал и отдельную прогу делать (билдеровскую),то же самое.

PS. А на счет того, что форматы разные, то при создании DLL есть галка VC++ style. Ну так вот, она тоже не помогла.


Я с динамической памятью в Билдере, так до конца и не разобрался. Возможно это всегда так. Или Виндовс сам плохо освобождает. За ним это тоже водится. Не зря же масса прог на тему сборки мусора, утечки памяти и висячих процессов

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог