CodeGuard и dll
PS. DLL c поддержкой VCL, Dynamic RTL выключен.
Включи Dynamic RTL, не будет resource leak.
Это нормально.
Включи Dynamic RTL, не будет resource leak.
А у меня вообще не хочет без CodeGuard компилится. Выдаёт unresolvet externol _CG_чёто там. (BCB6)
Странно всё это. И когда я использовал NuMega BoundsChecker, так тот вообще меня обматерил, мол у тебя память горными потоками утекает, хотя в Builder ни одной ошибки от CodeGuard. Странно всё это
А у меня вообще не хочет без CodeGuard компилится. Выдаёт unresolvet externol _CG_чёто там. (BCB6)
Странно всё это. И когда я использовал NuMega BoundsChecker, так тот вообще меня обматерил, мол у тебя память горными потоками утекает, хотя в Builder ни одной ошибки от CodeGuard. Странно всё это
У меня пятый. Ошибки с "unresolvet externol _CG_чёто там" у меня иногда бывают, если после отключения CodeGuard в опциях проекта я не делаю полный билд проекта, а просто запускаю по F9. Также бывает полезно грохать промежуточные файлы компилятора и линкера.
Действительно, странно :)
У меня пятый. Ошибки с "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 освобождает всю памаять при выходе.
PS. А на счет того, что форматы разные, то при создании DLL есть галка VC++ style. Ну так вот, она тоже не помогла.
Пробовал и отдельную прогу делать (билдеровскую),то же самое.
PS. А на счет того, что форматы разные, то при создании DLL есть галка VC++ style. Ну так вот, она тоже не помогла.
Я с динамической памятью в Билдере, так до конца и не разобрался. Возможно это всегда так. Или Виндовс сам плохо освобождает. За ним это тоже водится. Не зря же масса прог на тему сборки мусора, утечки памяти и висячих процессов