Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/84: Рейтинг темы: голосов - 84, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 04.12.2007
Сообщений: 3

Unresolved external '...' referenced from ...*.OBJ

05.05.2009, 18:01. Показов 17018. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу лабу по работе с классами, должен быть класс-родитель, содержащий прямоугольник, и класс-потомок, содержащий автомобиль. При запуске выдаёт: "[Linker Error] Unresolved external 'TRectg :: TRectg(int X01,int Y01,int X02,int Y02,Graphics::TColor Color0,Graphics::TCanvas* Canvas0)' referenced from D:\! STUDY\C\!2\LABOOP.OBJ" и ещё четыре аналогичных ошибки. Что я неправильно делаю?

Unit1.h:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#ifndef Unit1H
#define Unit1H
#include <graphics.hpp>
class TRectg
   {
   public:
   TRectg(int,int,int,int,TColor,TCanvas*);
   void Move(int,int);
   virtual void Show(TColor,TColor);
   protected:
   int X1,Y1,X2,Y2;
   TColor Color;
   TCanvas* Canvas;
   };
#endif
Unit1.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
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
 
//Конструктор
TRectg :: TRectg(int X01,int Y01,int X02,int Y02,
                 TColor Color0,TCanvas* Canvas0)
   {
   X1=X01;
   Y1=Y01;
   X2=X02;
   Y2=Y02;
   Color=Color0;
   Canvas=Canvas0;
   }
 
//Перемещение на заданное расстояние
void TRectg::Move(int dX,int dY)
   {
   Show(clBtnFace,clBtnFace)         //Удаление старого изображения
   X1+=dX;                           //Расчёт новых координат
   Y1+=dY;
   X2+=dX;
   Y2+=dY;
   Show(clBlack,Color)               //Рисование изображения на новом месте
 
//Отображение прямоугольника
void TRectg::Show(TColor CP,TColor CB)
   {
   Canvas->Pen->Color=CP;
   Canvas->Brush->Color=CB;
   Canvas->Rectangle(X1,Y1,X2,Y2);
   }
Unit2.h:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#ifndef Unit2H
#define Unit2H
#endif
#include "Unit1.h"
 
class TMashin : public TRectg
   {
   protected:
   TColor ColorD;
   public:
   TMashin(int X01,int Y01,int X02,int Y02,TColor Color0,TCanvas* Canvas0):
   TRectg(X01,Y01,X02,Y02,Color0,Canvas0){};
   void SetD(TColor);
   void Show(TColor,TColor);
   };
Unit2.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
35
36
37
#pragma hdrstop
#include "Unit2.h"
#pragma package(smart_init)
 
//Отображение машины
void TMashin::Show(TColor CP,TColor CB)
   {
   Canvas->Pen->Color=CP;
   Canvas->Brush->Color=CB;
   int hx=(X2-X1)/10;
   int hy=(Y2-Y1)/10;
   TPoint pnt[7];
   pnt[0]=Point(X1,Y1+4*hy);
   pnt[1]=Point(X1,Y1+8*hy);
   pnt[2]=Point(X2-2*hx,Y1+8*hy);
   pnt[3]=Point(X2-2*hx,Y1+4*hy);
   pnt[4]=Point(X1+6*hx,Y1+4*hy);
   pnt[5]=Point(X1+4*hx,Y1);
   pnt[6]=Point(X1+2*hx,Y1);
   Canvas->Polygon(pnt,6);
   Canvas->Ellipse(X1+hx,Y1+6*hy,X1+3*hx,Y2);
   Canvas->Ellipse(X1+5*hx,Y1+6*hy,X1+7*hx,Y2);
   TPoint pnd[4];
   Canvas->Pen->Color=clBtnFace;
   if (CB!=clBtnFace)
      Canvas->Brush->Color=ColorD;
   pnd[0]=Point(X2-2*hx+1,Y1+5*hy);
   pnd[1]=Point(X2-2*hx+1,Y1+7*hy);
   pnd[2]=Point(X2,Y1+8*hy);
   pnd[3]=Point(X2,Y1+4*hy);
   Canvas->Polygon(pnd,3);
   }
 
void TMashin::SetD(TColor clr)
   {
   ColorD=clr;
   };
Добавлено через 48 секунд
labOOP.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
#ifndef labOOPH
#define labOOPH
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TSpeedButton *SpeedButton1;
        TSpeedButton *SpeedButton2;
        TSpeedButton *SpeedButton3;
        TSpeedButton *SpeedButton4;
        TEdit *Edit1;
        TCheckBox *CheckBox1;
        TRadioGroup *RadioGroup1;
        TEdit *Edit2;
        void __fastcall CheckBox1Click(TObject *Sender);
        void __fastcall SpeedButton1Click(TObject *Sender);
        void __fastcall SpeedButton2Click(TObject *Sender);
        void __fastcall SpeedButton3Click(TObject *Sender);
        void __fastcall SpeedButton4Click(TObject *Sender);
        void __fastcall FormResize(TObject *Sender);
private:    // User declarations
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
labOOP.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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <vcl.h>
#pragma hdrstop
#include "labOOP.h"
#include "Unit1.h"
#include "Unit2.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TRectg *Obj1;
TMashin *Obj2;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
   {
   //Создание динамических объектов классов
   Obj1=new TRectg(10,10,60,70,clYellow,Form1->Canvas);
   Obj2=new TMashin(100,10,240,70,clRed,Form1->Canvas);
   }
//---------------------------------------------------------------------------
 
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
   {
   //Включение фар
   if (CheckBox1->Checked)
      Obj2->SetD(clWhite);
   else
      Obj2->SetD(clBtnFace);
   Obj2->Move(0,0);
   }
 
void __fastcall TForm1::FormResize(TObject *Sender)
   {
   //Отображение объектов (прямоугольника и машины)
   Obj1->Move(0,0);
   Obj2->SetD(clBtnFace);
   Obj2->Move(0,0);
   }
 
void Dvigen (int hx,int hy) //Движение выбранного объекта
   {
   switch(Form1->RadioGroup1->ItemIndex)
      {
      case 0:
         Obj1->Move(hx,hy);
         break;
      case 1:
         Obj2->Move(hx,hy);
         break;
      }
   }
 
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
   {
   Dvigen(0,-StrToInt(Edit2->Text));
   }
 
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
   {
   Dvigen(-StrToInt(Edit1->Text),0);
   }
 
void __fastcall TForm1::SpeedButton3Click(TObject *Sender)
   {
   Dvigen(StrToInt(Edit1->Text),0);
   }
 
void __fastcall TForm1::SpeedButton4Click(TObject *Sender)
   {
   Dvigen(0, StrToInt(Edit2->Text));
   }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.05.2009, 18:01
Ответы с готовыми решениями:

Ошибка [Linker Error] Unresolved external '_Form1' referenced from G\.obj
Как устранить ошибку? файл .cpp //--------------------------------------------------------------------------- #include...

[Linker Error] Unresolved external 'f2(double)' referenced from D:\C++\4\UNIT1.OBJ-C++ Builder
что может означать эта ошибка: Unresolved external 'f2(double)' referenced from D:\C++\4\UNIT1.OBJ ...

[Linker Error] Unresolved external 'Sum(float)' referenced from D:\УЧЕБА\UNIT1.OBJ
что может означать эта ошибка Unresolved external 'Sum(float)' referenced from D:\УЧЕБА\UNIT1.OBJ ...

3
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,307
06.05.2009, 06:33
Попробуй Project -> Add to Project и выбери Unit1.cpp, затем повтори для Unit2.cpp.
1
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
06.05.2009, 06:57
у тебя 3 ошибки в листинге Unit1:
C++
1
2
3
4
5
6
7
8
9
void TRectg::Move(int dX,int dY)
   {
   Show(clBtnFace,clBtnFace)  //нет точки запятой
   X1+=dX;                           //Расчёт новых координат
   Y1+=dY;
   X2+=dX;
   Y2+=dY;
   Show(clBlack,Color)               //нет точки запятой
// нет закрывающей фигурной скобки
хотя тогда не понятно, как дошло дело до линкования, можешь полностью выложить
1
0 / 0 / 0
Регистрация: 04.12.2007
Сообщений: 3
06.05.2009, 09:27  [ТС]
извиняюсь, сильно ступил. действительно, дело было в shift+F11
WooDooMan, до линкования потому и дошло, что юнит1 и подключен-то не был.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.05.2009, 09:27
Помогаю со студенческими работами здесь

Ошибка [Linker Error] Unresolved external 'TForm1::' referenced from C:\USERS\DESKTOP\PROJECT2.OBJ
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop #include...

Подскажите что мне делать с ошибкой [Linker Error] Unresolved external 'Btsdk_Init()' referenced from UNIT1.OBJ
Здравствуйте, помогите пожалуйста. Скачал с сайта http://www.bluesoleil.com/ библиотеку для работы с блютуз. В нее входит 4-е h...

что за ошибка?[Linker Error] Unresolved external '_PortOut' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ
Unresolved external '_PortOut' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ Я скачал библиотеку для работы с...

[ILINK32 Error] Error: Unresolved external '__fastcall TMainForm::MaskEdit1Change(System::TObject *)' referenced from C:\LCARD\MAIN.OBJ
одна ошибка просто достала, наверняка где то уже была тема про эту ошибку, но не могу найти вообщем добавляю на поле какую нибудь...

[Linker Error] Unresolved external '__fastcall TForm3::FormCreate(System::TObject *)' referenced from D:\Sasha\Navchannya\OPI\KPIZ\KPIZ\UNIT3.OBJ
Здравствуйте, уважаемые форумчане! У меня возникла проблема с компиляцией проекта. Дело в том, что при компиляции Билдер выдает мне...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru