Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.14;
Скачать: CL | DM;

Вниз

Проблема с ООП Access Violation   Найти похожие ветки 

 
Rembo   (2009-04-27 02:07) [0]

Сделал класс, несколько методов, куча переменных.
Сделал штук 50 экземпляров его, все норм работало, но в какой то момент появилась аномалия:
myclass1:=TMyClass.Create;
myclass1.var1:=1;
myclass1.method1;
myclass1.var2:=5;<<<Access Violation Exception!!!
Но! Если не выполнять метод method1 или после него заново инициолизировать класс ошибки не будет.
Так же этот глюк возникает не у всех экземпляров. Появление ошибки зависит от порядка объявления экземпляров, но как именно я не понял.
Еще могу сказать что в method1 вызываеться функция из дллки (directx), если ее убрать аномалия исчезнет.
Вот функция:
hret:=D3DXCreateTextureFromFileEx(FD3DDevice,PChar(fname),0,0,0,0,D3DFMT_A8R8G8B 8,D3DPOOL_MANAGED, D3DX_DEFAULT,D3DX_DEFAULT,0,inf,nil,tex);

hret возвращает что мол все ок.
Прошу помоч, а еще прошу не перенносить тему в "построение игр".
Заранее благодарен.


 
Германн ©   (2009-04-27 02:45) [1]


>
> Rembo   (27.04.09 02:07)
>
> Сделал класс, несколько методов, куча переменных.
> Сделал штук 50 экземпляров его, все норм работало, но в
> какой то момент появилась аномалия:
> myclass1:=TMyClass.Create;
> myclass1.var1:=1;
> myclass1.method1;
> myclass1.var2:=5;<<<Access Violation Exception!!!
> Но! Если не выполнять метод method1 или после него заново
> инициолизировать класс ошибки не будет.
> Так же этот глюк возникает не у всех экземпляров. Появление
> ошибки зависит от порядка объявления экземпляров, но как
> именно я не понял.


 
Германн ©   (2009-04-27 02:48) [2]

А сам код привести стесняешься?
аАи как?


 
First blood   (2009-04-27 02:54) [3]


> myclass1.var2:=5;<<<Access Violation Exception!!!

Проблема не здесь, это глюк встроенного отладчика.
Проблема при выходе из myclass1.method1;. Копайте её.


 
Rembo   (2009-04-27 09:22) [4]

Пасиб за помощь, проблему локализовал и решил вроде бы...
В D3DXCreateTextureFromFileEx использовалась запись inf типа   PD3DXImageInfo = ^TD3DXImageInfo;
и в методе я ее я так и назвал PD3DXImageInfo, а ща допер что создаю пустой указатель, передаю его в функцию и пытаюсь чето получить из него)
Решение:
inf:TD3DXImageInfo;
...
D3DXCreateTextureFromFileEx(....,@inf);
Ну вот почему компилятор так просто все не объяснил


 
KSergey ©   (2009-04-27 10:50) [5]

> Rembo   (27.04.09 09:22) [4]
> Ну вот почему компилятор так просто все не объяснил

Что компилятор не объяснил? Формально код правильный.
Однако у меня сильное подозрение, что warning комилятор таки выкидывал, но кто ж их читает?


 
Anatoly Podgoretsky ©   (2009-04-27 11:20) [6]

> KSergey  (27.04.2009 10:50:05)  [5]

Лучше предположить, что warning-и просто не включены.


 
Rembo   (2009-04-27 12:01) [7]

Так они отключаютсья?0о
Только что вернул все назад запустил, еррор, НИИДИНОГО ВАРНИНГА НЕБЫЛО!
[Hint] graph.pas(389): Value assigned to "a" never used
[Hint] graph.pas(388): Value assigned to "time" never used
[Hint] graph.pas(343): Variable "xxx" is declared but never used in "TTxt.inittxt"
[Hint] graph.pas(490): Variable "I" is declared but never used in "TSprite.send"
[Hint] graph.pas(490): Variable "k" is declared but never used in "TSprite.send"
[Hint] graph.pas(653): Variable "i" is declared but never used in "initbtns"
[Hint] graph.pas(663): Variable "j" is declared but never used in "graphinit"
[Hint] graph.pas(664): Variable "k" is declared but never used in "graphinit"


 
First blood   (2009-04-27 12:22) [8]


> Rembo   (27.04.09 09:22) [4]
> D3DXCreateTextureFromFileEx(....,@inf);
> Ну вот почему компилятор так просто все не объяснил

А это уже зависит от того как описана в хидере эта функция, а также думаю от настроек компилятора [x] Typed @ operator



Страницы: 1 вся ветка

Текущий архив: 2009.06.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
2-1240556754
worldmen
2009-04-24 11:05
2009.06.14
Вставка русского текста через TIBTable


15-1239046670
Nic
2009-04-06 23:37
2009.06.14
Автовыравнивающаяся табличка html


4-1211208395
R1ka
2008-05-19 18:46
2009.06.14
WinApi, WM_PAINT


15-1239277793
Palladin
2009-04-09 15:49
2009.06.14
Delphi 6 и wine под Manrdiva 2009


2-1240666145
HF-Trade
2009-04-25 17:29
2009.06.14
idHTTP.Get не получаеться забрать страничку