Создание формы access violation at address...

Статус: Offline
Реєстрація: 11.06.2009
Повідом.: 424
Была в проге создана форма, нормально работала и создавалась. После добавления в проект новых форм, перехода с Builder 2009 на 2010 форма при вызове начала плеваться "access violation at address...". В чем может быть проблема? Форма находиться в Available Forms.

В Form1:
Код:
#include "NewsView.h"

void __fastcall TForm1::TreeItemOpenClick(TObject *Sender)
{
   NewsViewForm= new TNewsViewForm(this);
   NewsViewForm->ShowModal();
   NewsViewForm->Free();
}
вариант с перемещением в Auto-create forms и убрать при этом "NewsViewForm= new TNewsViewForm(this);" не помог, в чем может быть косяк?
Стопорится именно на NewsViewForm= new TNewsViewForm(this); и кричит access violation at address...



лог билда на всякий случай
Код:
Checking project dependencies...
Compiling Project1.cbproj (Release configuration)
[BCC32 Warning] crtdbg.h(39): W8017 Redefinition of '_ASSERTE' is not identical
[BCC32 Warning] NewsView.h(39): W8070 Function should return a value
[BCC32 Warning] Unit1.cpp(228): W8004 'newsnames' is assigned a value that is never used
[BCC32 Warning] Unit1.cpp(336): W8004 'postresult_lst' is assigned a value that is never used
[BCC32 Warning] Unit1.cpp(389): W8004 'postresult_lst' is assigned a value that is never used
[BCC32 Warning] crtdbg.h(39): W8017 Redefinition of '_ASSERTE' is not identical
[BCC32 Warning] NewsView.h(39): W8070 Function should return a value
[BCC32 Warning] NewsView.cpp(46): W8004 'lr' is assigned a value that is never used
[BCC32 Warning] NewsView.cpp(202): W8004 'newsnames' is assigned a value that is never used
[ILINK32 Warning] Warning: Public symbol '_MemoryStream' defined in both module E:\MY PROGECT\BORLAND C++ PROJECTS\CLAN_NEWS_ADMIN\RELEASE\NEWSVIEW.OBJ and E:\MY PROGECT\BORLAND C++ PROJECTS\CLAN_NEWS_ADMIN\RELEASE\EDITUSERDATA.OBJ
[ILINK32 Warning] Warning: Public symbol '_MemoryStream' defined in both module E:\MY PROGECT\BORLAND C++ PROJECTS\CLAN_NEWS_ADMIN\RELEASE\NEWSVIEW.OBJ and E:\MY PROGECT\BORLAND C++ PROJECTS\CLAN_NEWS_ADMIN\RELEASE\READUSERDATA.OBJ
[ILINK32 Warning] Warning: Public symbol '_MemoryStream' defined in both module E:\MY PROGECT\BORLAND C++ PROJECTS\CLAN_NEWS_ADMIN\RELEASE\NEWSVIEW.OBJ and E:\MY PROGECT\BORLAND C++ PROJECTS\CLAN_NEWS_ADMIN\RELEASE\USERS.OBJ
[ILINK32 Warning] Warning: Public symbol '_MemoryStream' defined in both module E:\MY PROGECT\BORLAND C++ PROJECTS\CLAN_NEWS_ADMIN\RELEASE\EDITUSERDATA.OBJ and E:\MY PROGECT\BORLAND C++ PROJECTS\CLAN_NEWS_ADMIN\RELEASE\READUSERDATA.OBJ
[ILINK32 Warning] Warning: Public symbol '_MemoryStream' defined in both module E:\MY PROGECT\BORLAND C++ PROJECTS\CLAN_NEWS_ADMIN\RELEASE\EDITUSERDATA.OBJ and E:\MY PROGECT\BORLAND C++ PROJECTS\CLAN_NEWS_ADMIN\RELEASE\USERS.OBJ
[ILINK32 Warning] Warning: Public symbol '_MemoryStream' defined in both module E:\MY PROGECT\BORLAND C++ PROJECTS\CLAN_NEWS_ADMIN\RELEASE\READUSERDATA.OBJ and E:\MY PROGECT\BORLAND C++ PROJECTS\CLAN_NEWS_ADMIN\RELEASE\USERS.OBJ
Success
Elapsed time: 00:00:03.8
 
Останнє редагування:
может ты там с потоками что-то намутил?
 
может быть ошибка в конструкторе формы, если он конечно есть. а если на форме есть фреймы, то в их конструкторах тоже может быть. если форма или фреймы наследуются, надо проверить конструкторы суперклассов.

но скорее всего при переходе с версии на версию билдер не досчитался какого-то компонента и коряво выпилил его из формы. наверняка и предупреждения были при открытии формочки в редакторе. теперь пытается обратиться к несозданному объекту.
что-то подобное было, когда он выпилил управляющий элемент с формы суперкласса, а про потомков забыл.

сторониие компоненты используются?
 
может ты там с потоками что-то намутил?
потоки не юзаю, все идет без наворотов, в автоматически созданных потоках

может быть ошибка в конструкторе формы, если он конечно есть. а если на форме есть фреймы, то в их конструкторах тоже может быть. если форма или фреймы наследуются, надо проверить конструкторы суперклассов.

но скорее всего при переходе с версии на версию билдер не досчитался какого-то компонента и коряво выпилил его из формы. наверняка и предупреждения были при открытии формочки в редакторе. теперь пытается обратиться к несозданному объекту.
что-то подобное было, когда он выпилил управляющий элемент с формы суперкласса, а про потомков забыл.

сторониие компоненты используются?
сторонних компонентов нет, может и правда выпилил чего нить, хотя предупреждений небыло никаких, фреймов нет, а как узнать толком где ошибка в конструкторе? Не хочется создавать новую форму и все на неё перемещать:(

самое обидное что от билдера 2009 пришлось отказаться из за глюков с TCppWebBrowser, а тут опять глюки((
 
Зайди дебаггером внутрь конструктора TNewsViewForm, если необходимо - то и внутрь его предков и посмотри где падает. Ф7 вместо Ф8 если не ошибаюсь :)
 
Зайди дебаггером внутрь конструктора TNewsViewForm, если необходимо - то и внутрь его предков и посмотри где падает. Ф7 вместо Ф8 если не ошибаюсь :)

никогда не работал с вкладкой CPU и таким режимом дебага, ладно, думаю проще будет перекидать все на новую форму, чем ломать голову над тем где возникла ошибка
 
а ведь дебаг может тебе реально подсказать в чем проблема, зачастую я так и узнаю где собака порыла )
 
а ведь дебаг может тебе реально подсказать в чем проблема, зачастую я так и узнаю где собака порыла )

угу, но не могу заставить себя научиться продвинутому дебаггу, понимая что это тупик, ведь гораздо полезней будет выучить VSC++
 
никогда не работал с вкладкой CPU

зачем вкладка CPU для отладки своего кода??

каких именно?
это ж тупой интерфейс к IE, как билдер не меняй, оно им и останется.
почему не TWebBrowser?
 
зачем вкладка CPU для отладки своего кода??


каких именно?
это ж тупой интерфейс к IE, как билдер не меняй, оно им и останется.
почему не TWebBrowser?

при запуске с F7, как тут посоветовали, отладка, как я понял из действа, шла именно в ней.
Не, в 2009ом некорректно работало собылие OnBeforeNavigate2 при изменении его переменных выбивало ошибку. А почему не TWebBrowser сам не знаю, пока в Cpp, перебраться будет не сильно сложно, ведь странички грузятся из изменяемого файла. А какая в них разница? TWebBrowser не оболочка IE?
 
А какая в них разница? TWebBrowser не оболочка IE?
оболочка оболочка, только к разным COM-классам:
TWebbrowser in fact is a wrapper over Microsoft's
Shell Doc Object and Control library (SHDOCVW.DLL)
Тільки зареєстровані користувачі бачать весь контент у цьому розділі


TCppWebBrowser is a wrapper for the IE ActiveX.
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
Тільки зареєстровані користувачі бачать весь контент у цьому розділі


а вот в чем между ними разница не очень знаю.
 
оболочка оболочка, только к разным COM-классам:

Тільки зареєстровані користувачі бачать весь контент у цьому розділі


а вот в чем между ними разница не очень знаю.

мне вообще они оба не по душе, в силу тормознутости IE. Это самое слабое место проги, надо буит ченить замутить на мозиловском движке.
 
Назад
Зверху Знизу