Forum: PC-Programmierung fatal error LNK1120: 1 unresolved externals


von Holger K. (holgerkraehe)


Lesenswert?

Hallo

Zum beschriebenen Error habe ich schon einiges im Internet gefunden, 
leider liess sich nichts auf mein Problem anwenden.

Bei folgendem Code wird die Errormeldung erzeugt:

1>GPIB_TestAppDlg.obj : error LNK2019: unresolved external symbol 
"public: void __thiscall CHP4284A::Fetch_Measurement(enum 
Fetch_Mode,char *)" 
(?Fetch_Measurement@CHP4284A@@QAEXW4Fetch_Mode@@PAD@Z) referenced in 
function "public: void __thiscall 
CGPIB_TestAppDlg::OnBnClickedButtonRead(void)" 
(?OnBnClickedButtonRead@CGPIB_TestAppDlg@@QAEXXZ)
1>C:\LocalData\C++\GPIB_TestApp\Debug\GPIB_TestApp.exe : fatal error 
LNK1120: 1 unresolved externals

1
void CGPIB_TestAppDlg::OnBnClickedButtonRead()
2
{
3
  UpdateData(TRUE);
4
  char Value_String[256] = { 0 };
5
  lcrmeter.Fetch_Measurement(F_IMP, Value_String);
6
  m_ValueRead.Format(Value_String);
7
8
}

Die Funktion befindet sich im File HP4284A.cpp
1
void CHP4284A::Fetch_Measurement(Fetch_Mode mode, char* Measurement_Data)
2
{
3
  if (mode == F_IMP)
4
  {
5
    Write("FETC?");
6
    Read(1, Measurement_Data);
7
  }
8
  else if (mode == F_SMONV)
9
  {
10
    Write("FETC:SOMN:VAC?");
11
    Read(1, Measurement_Data);
12
  }
13
  else if (mode == F_SMONI)
14
  {
15
    Write("FETC:SOMN:IAC?");
16
    Read(1, Measurement_Data);
17
  }
18
}

Und ist im HP4284A.h definiert.
1
// Fetch Measurement    FETCh      Fetch measurement Value
2
                  void    Fetch_Measurement(Fetch_Mode mode, char* Measurement_Data);

Den Fehler konnte ich bis jetzt nicht finden. Wahrscheinlich bin ich 
einfach zu blind. Vielleicht sieht ja jemand von euch was da falsch ist.

Schon mal danke im Voraus
Eure Krähe

von Klaus W. (mfgkw)


Lesenswert?

Linkst du denn auch mit der Lib, die 
CHP4284A::Fetch_Measurement(Fetch_Mode mode, char* Measurement_Data) 
enthält (also letztlichmit dem Kompilat von HP4284A.cpp)?

Mit einem vermuteten #include <HP4284A.h> werden ja nur beim Kompilieren 
die Deklarationen aus HP4284A.h eingefügt. Das Linken mit HP4284A.cpp 
wird damit noch nicht erreicht und muß beim Linken irgendwie mit 
angegeben werden.

: Bearbeitet durch User
von Holger K. (holgerkraehe)


Lesenswert?

Ups, blöder fehler. Hatte HP4284A.cpp in einem seperaten Fenster offen 
und vergessen zu kompilieren.

Muss wohl mal früher ins Bett ;)

Danke schön

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.