Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

21.08.2009, 12:47

error LNK2019: unresolved external symbol

hi @ all,

ich bekomme die oben genannte fehlermeldung beim aufruf einer methode.

ich habe folgendes gemacht, bevor ich die fehlermeldung erhalten habe:

ich habe 2 klassen zu einer zusammengefügt.

alle methoden der klasse lassen sich aufrufen, aber nur bei einer (writeText) kommt eben diese fehlermeldung, was wenig sinn macht.

die methode ist nur einmal vorhanden, weswegen doppelte methodennamen ausgeschlossen werden können.
fehlende einbindung der libs bzw. includes können auch ausgeschlossen werden, da andere methoden ohne fehler aufgerufen werden können.

ich benutze vc++ 2008 ee. kann es sein, das die ide iwo was zwischen gespeichert hat, was diesen fehler auslöst?

danke schonmal für antworten

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

21.08.2009, 12:53

Zeig den Code am besten mal. Wahrscheinlich ist es ein Schreibfehler..

3

21.08.2009, 12:56

die methode:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void C_MYGE_Init_Direct3D::writeText(LPCSTR text, int x, int y, D3DCOLOR color)
{
    RECT r = {x, y, 0, 0};

    this->m_lpD3DXFont->DrawText( NULL,
                                  text,
                                  -1,
                                  &r,
                                  DT_CALCRECT,
                                  color);

    this->m_lpD3DXFont->DrawText( NULL,
                                  text,
                                  -1,
                                  &r,
                                  DT_CENTER,
                                  color);
}


der aufruf:

C-/C++-Quelltext

1
MYGE.DirectX9.Direct3D.writeText("ich bin ein text", 50, 50, D3DCOLOR_XRGB(255, 0, 0));

4

21.08.2009, 12:56

Du hast dich bei der Funktionsdefinition verschrieben, denke ich. Deshalb ist die Methode zwar deklariert aber er findet keine Definition dazu.
[edit]Zeig mal die Deklaration[/edit]
[edit2]Man ist das ein hässlicher Klassenname, oO. Wofür gibt es eigentlich namespaces?[/edit2]
Lieber dumm fragen, als dumm bleiben!

5

21.08.2009, 13:10

problem behoben.

lösung:

alte .lib gelöscht, alles neu erstellt.

6

21.08.2009, 23:12

ist leider doch nicht gelöst -.-

ich habe eine neue methode implementiert, die dll erzeugt (in der die methode vorhanden ist), in der main (die dann später zur exe compiliert werden soll) die methode aufgerufen, es kommt wieder die fehlermeldung.

ich versteh es nicht, da alles neu erzeugt wurde (ich habe per hand die ordner debug und release geleert) und ich andere methoden in der gleichen klasse benutzen kann.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

21.08.2009, 23:32

Poste halt mal die ganze Fehlermeldung... ;)

8

22.08.2009, 13:31

hier die fehlermeldung:

Quellcode

1
>Main.obj : error LNK2019: unresolved external symbol "public: int __thiscall C_MYGE_DInput::ProcessInput(void)" (?ProcessInput@C_MYGE_DInput@@QAEHXZ) referenced in function "bool __cdecl render(void)" (?render@@YA_NXZ)

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

9

22.08.2009, 14:08

Zitat von »"Bolle"«

hier die fehlermeldung:

Quellcode

1
>Main.obj : error LNK2019: unresolved external symbol "public: int __thiscall C_MYGE_DInput::ProcessInput(void)" (?ProcessInput@C_MYGE_DInput@@QAEHXZ) referenced in function "bool __cdecl render(void)" (?render@@YA_NXZ)

Hast du die Methode C_MYGE_DInput::ProcessInput denn Implementiert? Laut Fehlermeldung fehlt diese.

10

22.08.2009, 14:11

das ist ja der witz den ich nicht verstehe. die methode ist implementiert, die lib ist gelinkt und die headerdatei findet er auch. es konfigurationstechnisch passt eig. alles.

Werbeanzeige