Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Probleme de liaison [ Archives / Au secours ] (vez_from_hell)

lundi 21 février 2005 à 03:23:01 | Probleme de liaison

vez_from_hell

bonjour
j'ai un gros probleme de liaison dans mon programme et je ne sais pas comme la corriger.

(Lieu Erreur) Unresolved external '__fastcall TForm1::FileSaveClick(System::TObject *) referenced D:\...\Main.obj

 (Lieu Erreur) Unresolved external '__fastcall TForm1::SaveAsButtonClick(System::TObject *) referenced D:\...\Main.obj

(Lieu Erreur) Unresolved external '__fastcall TForm1::FileNewClick(System::TObject *) referenced D:\...\Main.obj

(Lieu Erreur) Unresolved external 'TCharsetObject::' referenced D:\...\Main.obj

(Lieu Erreur) Unresolved external '__fastcall TCharsetObject::TCharsetObject(int)' referenced D:\...\Main.obj

merci beaucoup et si cela peut vous aider je me suis beaucoup aidé de l'exemple RichEdit de Borland C++ Builder 5


lundi 21 février 2005 à 14:22:48 | Re : Probleme de liaison

Vulpetrus

Sans les sources ça va être difficile de t'aider.
Cependant je pense que ton problème vient du fait que les fonctions FileNewClick,  SaveAsButtonClick et TCharsetObject sont bien déclarées dans le header mais non pas été implémentées ce qui n'est pas génant tant que ces fonctions ne sont pas appelées.
Et visiblement ton main les appele.
Donc implémentes-les si ce n'est pas le cas.

Si ceci n'a pas résolu ton problème, détaille un peu plus ton programme pour nous faciliter le travail

lundi 21 février 2005 à 22:21:01 | Re : Probleme de liaison

vez_from_hell

voici la source de mon code

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <windows.hpp>
#include <stdlib.h>
#include <stdio.h>
#include "Main.h"
#include "ReConst.hpp"

 

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)

{
SetFileName(Reconst_SUntitled);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SelectionChange(TObject */*Sender*/)
{
  char sizebuf[6];

  try {


    SpeedButton2->Down = RichEdit1->SelAttributes->Style.Contains(fsBold);
    SpeedButton3->Down = RichEdit1->SelAttributes->Style.Contains(fsItalic);
    SpeedButton4->Down = RichEdit1->SelAttributes->Style.Contains(fsUnderline);


    FontName->Text = RichEdit1->SelAttributes->Name;


  }
     catch (...) {
       FUpdating = False;
     }
     FUpdating = False;
}
//----------------------------------------------------------------------------
TTextAttributes *__fastcall TForm1::CurrText(void)
{
    return RichEdit1->SelAttributes;
}
//----------------------------------------------------------------------------
int __stdcall EnumFontsProc(TLogFontA &LogFont, TTextMetricA &/*TextMetric*/,
                                int /*FontType*/, Pointer Data)
{
     TCharsetObject *FontCharset;
     FontCharset = new TCharsetObject((int)LogFont.lfCharSet);
     ((TStrings *)Data)->AddObject((AnsiString)LogFont.lfFaceName,FontCharset);
     return 1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::GetFontNames(void)
{    HDC hDC = GetDC(0);
     void * cTmp = (void *)FontName->Items;
     EnumFonts(hDC, NULL, (FONTENUMPROC) EnumFontsProc, (long) cTmp );
     ReleaseDC(0,hDC);
     FontName->Sorted = True;
}
//----------------------------------------------------------------------------
void __fastcall TForm1::SetFileName(const AnsiString FileName)
{
     LPSTR lpBuf = new char[MAX_PATH];
     sprintf(lpBuf, Reconst_SPercent_s.c_str(), ExtractFileName(FileName).c_str(),
             Application->Title.c_str());
     Caption = (AnsiString)lpBuf;
     FFileName = FileName;
     delete lpBuf;
}
//----------------------------------------------------------------------------
void __fastcall TForm1::CheckFileSave(void)
{    if ( RichEdit1->Modified ) {
        switch(MessageBox(Handle, Reconst_SSaveChanges.c_str(),
          Reconst_SConfirmation.c_str(),MB_YESNOCANCEL | MB_ICONQUESTION))
        {  case ID_YES    : FileSaveClick(this);
           case ID_CANCEL : Abort();
        };
     }
}
//----------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject* /*Sender*/)
{
  AnsiString asLcid;
  int iLcid;

  Application->OnHint = &ShowHint;
  OpenDialog1->InitialDir = ExtractFilePath(ParamStr(0));
  SaveDialog1->InitialDir = OpenDialog1->InitialDir;
  GetFontNames();
  SelectionChange(this);

}
//----------------------------------------------------------------------------
void __fastcall TForm1::ShowHint(TObject* /*Sender*/)
{    StatusBar1->SimpleText = Application->Hint;
}
//----------------------------------------------------------------------------

void __fastcall TForm1::NewButtonClick(TObject *Sender)
{
    CheckFileSave();
     SetFileName(Reconst_SUntitled);
     RichEdit1->Lines->Clear();
     RichEdit1->Modified = False;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::OpenButtonClick(TObject *Sender)
{
CheckFileSave();
     if (OpenDialog1->Execute()) {
        RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);
        SetFileName(OpenDialog1->FileName);
        RichEdit1->SetFocus();
        RichEdit1->Modified = False;
        RichEdit1->ReadOnly = OpenDialog1->Options.Contains(ofReadOnly);
     }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SaveButtonClick(TObject *Sender)
{
if ( !strcmp(FFileName.c_str(), Reconst_SUntitled.c_str()) )
        FileSaveAsClick(Sender);
     else
     {
        RichEdit1->Lines->SaveToFile(FFileName);
        RichEdit1->Modified = False;
     }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FileSaveAsClick(TObject* /*Sender*/)
{    if ( SaveDialog1->Execute() ) {
        // Options + OverwritePrompt = True thus no need to check.
        RichEdit1->Lines->SaveToFile(SaveDialog1->FileName);
        SetFileName(SaveDialog1->FileName);
        RichEdit1->Modified = False;
     }
}

//---------------------------------------------------------------------------

void __fastcall TForm1::PrintButtonClick(TObject *Sender)
{
 if ( PrintDialog1->Execute() ) RichEdit1->Print( FFileName );
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
if ( RichEdit1->HandleAllocated() )
        SendMessage(RichEdit1->Handle, EM_UNDO, 0, 0);       
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Cut1Click(TObject *Sender)
{
RichEdit1->CutToClipboard();       
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Copy1Click(TObject *Sender)
{
RichEdit1->CopyToClipboard();       
}
//---------------------------------------------------------------------------

void __fastcall TForm1::C1Click(TObject *Sender)
{
RichEdit1->PasteFromClipboard();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Font1Click(TObject *Sender)
{
 FontDialog1->Font->Assign( RichEdit1->SelAttributes );
     if ( FontDialog1->Execute() )
        CurrText()->Assign( FontDialog1->Font );

     RichEdit1->SetFocus();       
}
//---------------------------------------------------------------------------


void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
if ( !FUpdating )
     {  if ( SpeedButton2->Down )
           CurrText()->Style = CurrText()->Style << fsBold;
        else
           CurrText()->Style = CurrText()->Style >> fsBold;
     }       
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton3Click(TObject *Sender)
{
if ( !FUpdating )
     {
        if ( SpeedButton3->Down )
           CurrText()->Style = CurrText()->Style << fsItalic;
        else
           CurrText()->Style = CurrText()->Style >> fsItalic;
     }       
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton4Click(TObject *Sender)
{
if ( !FUpdating )
     {
        if ( SpeedButton4->Down )
           CurrText()->Style = CurrText()->Style << fsUnderline;
        else
           CurrText()->Style = CurrText()->Style >> fsUnderline;
     }
}
//---------------------------------------------------------------------------
voici pour le Main.cpp

//---------------------------------------------------------------------------

#ifndef MainH
#define MainH
//---------------------------------------------------------------------------
#include <Outline.hpp>
#include <Grids.hpp>
#include <Buttons.hpp>
#include <ExtCtrls.hpp>
#include <StdCtrls.hpp>
#include <ComCtrls.hpp>
#include <Menus.hpp>
#include <Dialogs.hpp>
#include <Forms.hpp>
#include <Controls.hpp>
#include <Graphics.hpp>
#include <Classes.hpp>
#include <SysUtils.hpp>
#include <Messages.hpp>
#include <Windows.hpp>
#include <System.hpp>
#include <ToolWin.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // Composants gérés par l'EDI
        TMainMenu *MainMenu1;
        TMenuItem *File1;
        TRichEdit *RichEdit1;
        TLabel *Label1;
        TSaveDialog *SaveDialog1;
        TOpenDialog *OpenDialog1;
        TPrintDialog *PrintDialog1;
        TMenuItem *New1;
        TMenuItem *Save1;
        TMenuItem *Saveas1;
        TMenuItem *N1;
        TMenuItem *Open1;
        TMenuItem *Print1;
        TMenuItem *N2;
        TComboBox *FontName;
        TCoolBar *CoolBar1;
        TSpeedButton *OpenButton;
        TSpeedButton *SaveAsButton;
        TSpeedButton *NewButton;
        TSpeedButton *SaveButton;
        TSpeedButton *PrintButton;
        TSpeedButton *SpeedButton1;
        TSplitter *Splitter1;
        TBevel *Bevel3;
        TBevel *Bevel1;
        TBevel *Bevel2;
        TComboBox *ComboBox1;
        TBevel *Bevel4;
        TComboBox *ComboBox2;
        TSpeedButton *SpeedButton2;
        TMenuItem *Exit1;
        TBevel *Bevel5;
        TSpeedButton *SpeedButton3;
        TSpeedButton *SpeedButton4;
        TStatusBar *StatusBar1;
        TMenuItem *Edit1;
        TMenuItem *C1;
        TMenuItem *Copy1;
        TMenuItem *Cut1;
        TMenuItem *N4;
        TMenuItem *About1;
        TMenuItem *N3;
        TMenuItem *Font1;
        TFontDialog *FontDialog1;
        void __fastcall NewButtonClick(TObject *Sender);
        void __fastcall OpenButtonClick(TObject *Sender);
        void __fastcall SaveButtonClick(TObject *Sender);
        void __fastcall SaveAsButtonClick(TObject *Sender);
        void __fastcall PrintButtonClick(TObject *Sender);
        void __fastcall SpeedButton1Click(TObject *Sender);
        void __fastcall Cut1Click(TObject *Sender);
        void __fastcall Copy1Click(TObject *Sender);
        void __fastcall C1Click(TObject *Sender);
        void __fastcall Font1Click(TObject *Sender);
        void __fastcall SpeedButton2Click(TObject *Sender);
        void __fastcall SpeedButton3Click(TObject *Sender);
        void __fastcall SpeedButton4Click(TObject *Sender);
        void __fastcall SelectionChange(TObject *Sender);
        void __fastcall FileNewClick(TObject *Sender);
 void __fastcall FileOpenClick(TObject *Sender);
 void __fastcall FileSaveClick(TObject *Sender);
 void __fastcall FileSaveAsClick(TObject *Sender);
        void __fastcall FormCreate(TObject *Sender);
private: // Déclarations utilisateur
                void __fastcall ShowHint(TObject *Sender);
                AnsiString FFileName;
         bool FUpdating;
         int FDragOfs;
         bool FDragging;
         TTextAttributes *__fastcall CurrText(void);
         void __fastcall GetFontNames(void);
         void __fastcall SetFileName(const AnsiString FileName);
         void __fastcall CheckFileSave(void);
public:  // Déclarations utilisateur
        virtual __fastcall TForm1(TComponent* Owner);

};
//----------------------------------------------------------------------------
class TCharsetObject : public TObject
{
public:
    int Charset;
    __fastcall TCharsetObject(int FCharset);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

le Main.h

// Borland C++ Builder
// Copyright (c) 1995, 1999 by Borland International
// All rights reserved

// (DO NOT EDIT: machine generated header) 'ReConst.pas' rev: 5.00

#ifndef ReConstHPP
#define ReConstHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Windows.hpp> // Pascal unit
#include <SysInit.hpp> // Pascal unit
#include <System.hpp> // Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Reconst
{
//-- type declarations -------------------------------------------------------
//-- var, const, procedure ---------------------------------------------------
static const Word ENGLISH = 0x409;
static const Word GERMAN = 0x407;
static const Word FRENCH = 0x40c;
extern PACKAGE System::ResourceString _SUntitled;
#define Reconst_SUntitled System::LoadResourceString(&Reconst::_SUntitled)
extern PACKAGE System::ResourceString _SPercent_s;
#define Reconst_SPercent_s System::LoadResourceString(&Reconst::_SPercent_s)
extern PACKAGE System::ResourceString _SSaveChanges;
#define Reconst_SSaveChanges System::LoadResourceString(&Reconst::_SSaveChanges)
extern PACKAGE System::ResourceString _SConfirmation;
#define Reconst_SConfirmation System::LoadResourceString(&Reconst::_SConfirmation)
extern PACKAGE System::ResourceString _SNumberbetween;
#define Reconst_SNumberbetween System::LoadResourceString(&Reconst::_SNumberbetween)
extern PACKAGE System::ResourceString _SLcid;
#define Reconst_SLcid System::LoadResourceString(&Reconst::_SLcid)

} /* namespace Reconst */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Reconst;
#endif
#pragma option pop // -w-
#pragma option pop // -Vx

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif // ReConst

le ReConst.hpp
je crois que c'est cette partie qui ne fonctionne pas car je l'ai prise d'un autre programme (RichEdit l'exemple de Borland 5) et j'ai simplement ajouté le fichier au projet.

mais je ne sais pas comment implémenter les fonctions
j'espere que ca pourra vous aider
merci d'avance




Cette discussion est classé dans : erreur, lieu, unresolved, external, referenced


Répondre à ce message

Sujets en rapport avec ce message

Erreur Vc++!!! [ par D4rkRe4per ] j'ai recemment installé Visual c plus plus 6, mais g un gros probleme quand j'essaie de "builder" un programme, Vcpp m'indique cela :Linking...LIBCD Urgent: OpenGL unresolved external ... [ par voilhes ] Salut à tousJe viens de me mettre à l'OpenGL et j'ai déjà un gros problème:OpenGL.obj : error LNK2001: unresolved external symbol __imp__glHint@8OpenG Erreur : unresolved external symbol _gtk_widget_show [ par pierru ] Bonjour.G 4 erreurs quand je compile avec Visual du type:unresolved external symbol _gtk_widget_showQue faire?Pierru Problème de unresolved external symbol dans tout mes script [ par Suisse00 ] Bonjours ! Bon dans tout les application que j'essai de compiler (dont les exemple eu même) j'ai toujours ses 2 erreur !LIBCD.lib(wincrt0.obj) : error error LNK2001: unresolved external symbol [ par nicosdieu ] Bonjour,j'ai un problemedans une appli, a la compilation, voici les erreurs :calendrier.obj : error LNK2001: unresolved external symbol "int __cdecl S help unresolved external symbol [VC++] [ par leprov ] salut a tous.alors voila mon probleme. j'ai créé une classe C dont les declarations sont ds C.h, et les corps des fonctions sont dans C.cpp. mon progr Pb de "unresolved external symbol" (VC++ 6.0) [ par MELISA ] Bonjour,Voici mon pb:J'ai créé une dll qui contient la signature et le code de la fonction Init.Lorsque j'appelle cette fonction dans mon projet et lo VC++ :error LNK2001 : unresolved external symbol _glutGet@4... [ par Sisyphe ] Bonjour, je suis un p'tit nouveau en Opengl et VC++,...j'ai tenté de compiler un prog qui utilise des fonctions Opengl, et il m'indique toute une séri Problème unresolved external symbol _DirectDrawCreate@12 [ par nemmezis ] Salut à tous !J'ai crée un objet DirectDraw avec la fonction DirectDrawCreate, mais quand je compile, j'obtiens le message suivant :window.obj : error unresolved external symbol _main ?? [ par kambo ] l'analyse lexicale et syntaxique se deroule correctement, pas de warning. mais lors du building ce message apparait; LIBCD.lib(crt0.obj) : error LNK2


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.