Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/40: Рейтинг темы: голосов - 40, средняя оценка - 5.00
 Аватар для bogdan_017
21 / 21 / 19
Регистрация: 18.03.2014
Сообщений: 148

Access violation at address 40009720 in module 'rtl60.bpl' при загрузке картинки

13.04.2015, 13:25. Показов 8106. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дорогие форумчане, пытаюсь загрузить картинку динамически в билдере. На строке выделения памяти выскакивает окно с ошибкой: access violation at address 40009720 in module 'rtl60.bpl'.

C++
1
2
3
4
5
6
7
8
9
10
11
12
Figure::Figure(const String img, short x=0, short y=0,short color=0)
{
 this->x=x;
 this->y=y;
 this->color=color;
 if (img!=0)
 {
  this->imgfigure=new TImage(FormMenu); //ругается вот в этой строчке.
  this->imgfigure->Picture->LoadFromFile(img);
 }
 else imgfigure=NULL;
}
Подскажите пожалуйста в чем может быть проблема?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.04.2015, 13:25
Ответы с готовыми решениями:

Access violation at address 501F084A in module vcl120.bpl. Read of address 00000374
Привет всем! Который день не могу продолжить работу с программой из-за такой ошибки: 'Access violation at address 501F084A in module...

Ошибка Access violation at address XXXXXXX in module 'vcl240.bpl'. Read of address XXXXXX
Доброго времени суток. Проблема следующая: при определенной последовательности действий в приложении вылетает ошибка, работа приложения...

Ошибка при компилировании исправной программы: Access violation at address 501F084A in module 'vcl120.bpl'
Взываю ко всем умам форума!(( Недавно я здесь создавал тему про ошибку, возникающую при компилировании исправной программы. А ошибка такая:...

8
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
13.04.2015, 13:29
FormMenu - это что?
0
 Аватар для bogdan_017
21 / 21 / 19
Регистрация: 18.03.2014
Сообщений: 148
13.04.2015, 13:39  [ТС]
nmcf, указатель на форму
C++
1
2
class TFormMenu : public TForm;
TFormMenu *FormMenu;
.
Я пробовал писать так:
C++
1
this->imgfigure=new TImage(this)
, но компилятор ругается Could not find a match for 'TImage::TImage(Figure * const)', а с указателем на форму компилируется.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
14.04.2015, 08:49
bogdan_017, покажите код модуля Figure целиком.
0
 Аватар для bogdan_017
21 / 21 / 19
Регистрация: 18.03.2014
Сообщений: 148
14.04.2015, 14:24  [ТС]
SatanaXIII, Игра шахматы. Задумка на данном этапе такая: в каждом классе, описывающем фигуру, должно быть изображение (иконка) фигуры, а методами класса реализовать перемещение и взаимодействие иконок фигур, как настоящие фигуры.

"classes.h"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef ClassesH
#define ClassesH
#include <vcl.h>
 
#include "main_menu.h"
//---------------------------------------------------------------------------
 
#define WHITE 64
#define wPAWN 1
//---------------------------------------------------------------------------
class Figure         //абстрактный класс фигуры
            {
  public:
          Figure(const String, short, short, short);
          virtual ~Figure();
          virtual void Move()=0;
          virtual void Possible_Move()=0;
 //private:
                 short x;
                 short y;
                 short color;
                 TImage *imgfigure;
             };
//---------------------------------------------------------------------------
 
class Pawn:public Figure    //класс пешка
  {
     public:
             Pawn(const String, short, short, short);
             ~Pawn();
             void Move();
             void Possible_Move();
 
             static const short weight=wPAWN;
     //private:
  };
//---------------------------------------------------------------------------
#endif
"classes.cpp"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#pragma hdrstop
#include "Classes.h"
 
//---------------------------------------------------------------------------
#pragma package(smart_init)
 
Figure::Figure(const String img, short x=0, short y=0,short color=0)
{
        this->x=x;
        this->y=y;
        this->color=color;
        if (img!=0)
         {
           this->imgfigure=new TImage(FormMenu);
           this->imgfigure->Picture->LoadFromFile(img);
         }
        else imgfigure=NULL;
}
//---------------------------------------------------------------------------
 
Figure::~Figure()
{
        if (imgfigure)
         {
          delete imgfigure;
          imgfigure=NULL;
         }
}
//---------------------------------------------------------------------------
Pawn::Pawn(const String img, short x=0, short y=0, short color=0):Figure(img, x, y, color) {}
Pawn::~Pawn(){}
 
void Pawn::Move() {}
void Pawn::Possible_Move() {}
Но при попытке создать объект Pawn выскакивает вышеописанная ошибка. Объект создаю из формы, т.е. из другого файла "main.cpp" следующим образом:
"main.cpp"
C++
1
2
3
const x_pos=20;
const y_pos=150;
Figure *pawn=new Pawn("images\\wpawn.ico",x_pos,y_pos,WHITE);
Если будет необходимо, прикрепляю полный код:
Вложения
Тип файла: rar Курсовая v1.2.rar (1.31 Мб, 3 просмотров)
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
16.04.2015, 13:46
Что-то не могу воспроизвести ошибку из представленного кода. Все гладко.
Скорее всего в остальном проекте косяк.
0
 Аватар для bogdan_017
21 / 21 / 19
Регистрация: 18.03.2014
Сообщений: 148
16.04.2015, 17:00  [ТС]
SatanaXIII, если в остальном проекте косяк, то почему программа останавливается именно на этой строчке:
C++
1
this->imgfigure=new TImage(FormMenu);
причем, если конструктор не запускать, т.е. не создавать объект класса Pawn, то все работает
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
17.04.2015, 08:30
bogdan_017, если грубо говорить, в этой строке вы стреляете себе в ногу. Если чуть более точнее, то скорее всего так выходит, что память выделяется не там/не та/не столько/не для того/прочее.
Повторюсь. Если воссоздать ваш код, приведенный в сообщении, то никакой ошибки нет, все работает. Если же запустить проект, прикрепленный к сообщению, то программа действительно падает. Судя вообще по ее архитектуре, вы конечно извините, но это ожидаемо. Написана она плохо. В хитросплетение ее устройства в данный момент вникать не буду.
0
 Аватар для bogdan_017
21 / 21 / 19
Регистрация: 18.03.2014
Сообщений: 148
18.04.2015, 14:22  [ТС]
Лучший ответ Сообщение было отмечено nick42 как решение

Решение

SatanaXIII, решил проблему вот таким образом, мало ли, может кому-то пригодится:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Figure::Figure(TComponent *Owner, const String img, short x=0, short y=0,short color=0)
{
        this->x=x;
        this->y=y;
        this->color=color;
        if (img!=0)
         {
           this->imgfigure=new TImage(Owner);
           this->imgfigure->Picture->LoadFromFile(img);
           this->imgfigure->Parent=(TWinControl*)Owner;
           this->imgfigure->Left=x;
           this->imgfigure->Top=y;
         }
}
а передаю в конструктор вот так:
C++
1
2
3
4
5
TPanel *PanelGame;
/*
блок операторов
*/
Figure *pawn=new Pawn(PanelGame, "images\\wpawn.ico", start_x, start_y, WHITE);
P.S. тему можно закрыть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.04.2015, 14:22
Помогаю со студенческими работами здесь

access violation at address 40009720 in module 'rtl60.bpl'. read of address
Где может быть проблема?String alphabet1=Edit1-&gt;Text,command,way,answer=&quot;&quot;; char *alpha1=alphabet1.c_str(); int...

Access violation at address 20575B62 in module 'coreide210.bpl'. Read of address 00000000
Столкнулся с такой проблемой, даже не до конца запустив delphi xe 7, кто что знает дайте обратную связь

Access violation at address in module. Read of address при скачивании файла
Код программы: unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,...

При запуске уже скомпелированной программы ошибка: "Access violation at address in module. Write of address."
Здравствуйте, написал программу для расчета по готовым формулам с использованием динамических массивов. В билдере всё компилируется и...

Ошибка access violation at address in module borlndmm.dll write of address
Всем здравствуйте. Не могу побороть ошибку &quot;access violation at address in module borlndmm.dll write of address &quot;. Попробую объяснить....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru