Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2011, 10:31   #1
Томми Круглый
 
Аватар для Томми Круглый
 
Регистрация: 13.09.2010
Сообщений: 5
Злость [Linker error] Unresloved external...

Товарищи программисты!
Недавно установил себе C++ Builder 6, написал программу и жестоко обломался:
Код:
[Linker error] Unresloved external '__fastcall TForm1::Button3Click(TObject *)' referenced from K:\PFOLDER\UNIT1.OBJ
Подскажите, пожалуйста, что это такое и с чем его едят!

Вот, собственно, программа:
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <stdio.h>
#include <string>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
using namespace std;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
        AnsiString sNotValidString;
        FILE *fDesktop;
        FILE *fIcon;
        int iConf, iShar, iNoShar;
        if(CheckBox1->Checked == true)
        { iConf = 1; } else { iConf = 0; }
        if(CheckBox2->Checked == true)
        { iShar = 1; iNoShar = 0; }
        else
        { iShar = 0; iNoShar = 1; }
        if((fDesktop = fopen("desktop.ini","w")) != NULL)
        {
                fprintf(fDesktop, "[.ShellClassInfo]\nConfirmFileOp=%i\nNoSharing=%i\nSharing=%i\n", iConf, iNoShar, iShar);
                if(LabeledEdit1->Text != sNotValidString)
                {
                        fprintf(fDesktop, "IconFile=%s\nIconIndex=0\nIconResource=%s,0\n", LabeledEdit1->Text, LabeledEdit1->Text);
                }
                fprintf(fDesktop, "[{BE098140-A513-11D0-A3A4-00C04FD706EC}]\n");
                if(LabeledEdit3->Text != sNotValidString)
                {
                        fprintf(fDesktop, "IconArea_Image=%s\n", LabeledEdit3->Text);
                }
                if(LabeledEdit2->Text != sNotValidString)
                {
                        fprintf(fDesktop, "IconArea_Text=%s\n", LabeledEdit2->Text);
                }
                if(Edit1->Text != sNotValidString)
                {
                        fprintf(fDesktop, "[DeleteOnCopy]/nOwner=%s/n");
                }
        }
}
//---------------------------------------------------------------------------
Глючит - значит существует! (Билл Гейтс)
Томми Круглый вне форума Ответить с цитированием
Старый 23.06.2011, 10:45   #2
klsaymon
Пользователь
 
Регистрация: 15.01.2010
Сообщений: 22
По умолчанию

вообще с билдерах почему то ругается на фигурную скобку, когда она на след строке стоит..., т.е. как у вас
if ()
{ <---
попробуйте подправить все на if () { <---
мб в этом дело...
Не забываем повышать рейтинг(для тех, кому помог)...
klsaymon вне форума Ответить с цитированием
Старый 23.06.2011, 10:54   #3
Томми Круглый
 
Аватар для Томми Круглый
 
Регистрация: 13.09.2010
Сообщений: 5
По умолчанию

Не-а! Осталась проблема...
Глючит - значит существует! (Билл Гейтс)
Томми Круглый вне форума Ответить с цитированием
Старый 23.06.2011, 11:22   #4
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

А довойном щелчке по этой кнопки в дизайнере вы попадаете в тело "Button3Click(TObject *Sender)" ? Или возможно на кнопке по не осторожности удалил событие в закладке Events. Я бы предложил удалить кнопку удалиметод "Button3Click", поиском поглядеть есть ли где еще упоминание о этом событии и все удалить.
Либо, в коде перед "Button3Click(TObject *Sender)" нарушен порядок скобок и Button3Click изчезает.. Там больше ошибок нету ? Тока эта ?
Guy вне форума Ответить с цитированием
Старый 23.06.2011, 11:29   #5
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от Томми Круглый Посмотреть сообщение
Товарищи программисты!
Недавно установил себе C++ Builder 6, написал программу и жестоко обломался:
Код:
[Linker error] Unresloved external '__fastcall TForm1::Button3Click(TObject *)' referenced from K:\PFOLDER\UNIT1.OBJ
Подскажите, пожалуйста, что это такое и с чем его едят!
Значит реализацию метода TForm1::Button3Click(TObject *) линкер найти не может. Сделай полную очистку с удалением всех obj, а потом заново перекомпилируй. В свойствах формы (или где там прописан этот метод события, судя по всему у компонента Button3 ) удали его там и заново пропиши. А еще проверь Unit1.cpp подключен ли к проекту.
An1ka вне форума Ответить с цитированием
Старый 23.06.2011, 11:48   #6
Томми Круглый
 
Аватар для Томми Круглый
 
Регистрация: 13.09.2010
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Guy Посмотреть сообщение
А довойном щелчке по этой кнопки в дизайнере вы попадаете в тело "Button3Click(TObject *Sender)" ?
Да.
Цитата:
Или возможно на кнопке по не осторожности удалил событие в закладке Events.
Нет, не удалял.
Цитата:
Я бы предложил удалить кнопку удалиметод "Button3Click", поиском поглядеть есть ли где еще упоминание о этом событии и все удалить.
Это что-то даст?
Цитата:
Либо, в коде перед "Button3Click(TObject *Sender)" нарушен порядок скобок и Button3Click изчезает..
Проверил - всё в порядке.
Цитата:
Там больше ошибок нету ? Тока эта ?
Только эта.
Цитата:
Сообщение от An1ka Посмотреть сообщение
Значит реализацию метода TForm1::Button3Click(TObject *) линкер найти не может.
Вот тут по-подробнее, пожалуйста, для жирафистых...
Цитата:
Сделай полную очистку с удалением всех obj, а потом заново перекомпилируй. В свойствах формы (или где там прописан этот метод события, судя по всему у компонента Button3 ) удали его там и заново пропиши.
Сделал - та же шняга.
Цитата:
А еще проверь Unit1.cpp подключен ли к проекту.
Если Вы имеете в виду USEFORM("Unit1.cpp", Form1);, то да.
Глючит - значит существует! (Билл Гейтс)
Томми Круглый вне форума Ответить с цитированием
Старый 23.06.2011, 11:55   #7
Томми Круглый
 
Аватар для Томми Круглый
 
Регистрация: 13.09.2010
Сообщений: 5
По умолчанию

Удалил кнопку, метод, поставил другую кнопку (Button1), вставил туда (в Button1Click) весть код из Button3Click - теперь выдаёт две ошибки:
Код:
[Linker error] Unresloved external '__fastcall TForm1::Button3Click(TObject *)' referenced from K:\PFOLDER\UNIT1.OBJ
[Linker error] Unresloved external '__fastcall TForm1::Button4Click(TObject *)' referenced from K:\PFOLDER\UNIT1.OBJ
Я в замешательстве...
Глючит - значит существует! (Билл Гейтс)
Томми Круглый вне форума Ответить с цитированием
Старый 23.06.2011, 12:18   #8
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от Томми Круглый Посмотреть сообщение
теперь выдаёт две ошибки:
Код:
[Linker error] Unresloved external '__fastcall TForm1::Button3Click(TObject *)' referenced from K:\PFOLDER\UNIT1.OBJ
[Linker error] Unresloved external '__fastcall TForm1::Button4Click(TObject *)' referenced from K:\PFOLDER\UNIT1.OBJ
Я в замешательстве...
В .h файле посмотри объявления этих методов и удали их !
An1ka вне форума Ответить с цитированием
Старый 23.06.2011, 12:23   #9
Томми Круглый
 
Аватар для Томми Круглый
 
Регистрация: 13.09.2010
Сообщений: 5
По умолчанию

Цитата:
Сообщение от An1ka Посмотреть сообщение
В .h файле посмотри объявления этих методов и удали их !
УРРЯ! Работает! Только вот я уже создал новый проект и всё туда перенёс, но всё равно огромное спасибо!
Глючит - значит существует! (Билл Гейтс)
Томми Круглый вне форума Ответить с цитированием
Старый 23.06.2011, 12:46   #10
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2Томми Круглый
kotor2 детектед
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Linker Error [C++] ordoss Помощь студентам 0 08.10.2010 22:46
С++ Билдер. Linker Error. bobby2008 Общие вопросы C/C++ 3 28.02.2010 15:01
[ILINK32 Error] Error: Unresolved external... Equilibrium Keeper Общие вопросы C/C++ 3 12.02.2010 18:12
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/main.exe : fatal error LNK11 prefak Win Api 0 19.04.2009 16:51