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

23.08.2011, 19:08

Lnk 2019

Hallo ich habe da ein Problem:
Ich wollte die Datein InitWindow.cpp und initwindow.h in mein projekt einschließen, die die TriBase engine benutzt.
Nun wollte ich es Kompilieren und bekomme fehler:

Quellcode

1
Fehler  9   error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__UnregisterClassA@8" in Funktion ""enum tbResult __cdecl ExitWindow(void)" (?ExitWindow@@YA?AW4Result@@XZ)".InitWindow.obj

Von denen kommen noch viele.
Sonst bekomme ich aber keine Fehler.
Ich habe alle DLLs und libs der TriBase hinzugefügt alles läuft nur die zwei datein machen ärger!!
Danke
MFG

EDIT:
Ich wollte nun erstmal ohne die Dateinen probieren:

C-/C++-Quelltext

1
2
3
4
5
WNDCLASSEX WindowClass = {sizeof(WNDCLASSEX), CS_CLASSDC, WindowProc, 0, 0,
                              GetModuleHandle(NULL), LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)), LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW)), NULL,
                              NULL, "Direct3D window", NULL};

    RegisterClassEx(&WindowClass);

Da bekome ich wieder linkerfehler warum???

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »schreib_muffel« (23.08.2011, 19:16)


2

23.08.2011, 19:29

Habe gerade nach herausgefunden das die user32.lib daran schuld ist, die ist aber (glaub ich :D) schon drin

3

23.08.2011, 19:39

So es geht voran nur noch ein fehler.
Habe jetzt das:
#pragma comment(lib,"user32.lib")
gemacht allerdings noch ein linkerfehler:

Quellcode

1
Fehler  2   error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z)" in Funktion "_WinMain@16".   Main.obj

EDIT:
Und ja meine main ist

C-/C++-Quelltext

1
2
3
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   char* pcCmdLine,
                   int iShowCmd)

4

23.08.2011, 20:12

Denkst du geschweifte Klammern sind richtig und das "=" gehört dahin?

MfG
Check

5

23.08.2011, 20:26

eig ja denn so ist es auch im original
:D
EDIT: WindowProc ist definiert:

C-/C++-Quelltext

1
LRESULT WINAPI  WindowProc(HWND hWindow, unsigned int uiMessage, WPARAM WParam, LPARAM LParam);

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

23.08.2011, 21:20

Das ist nur ne Deklaration und keine Definition ;)

7

23.08.2011, 21:34

Ok
So wie ich das verstehe ist die Definition in tbDoMessageLoop
Die Rufe ich auch auf also die Funktion
Ist ja eine nachrichtenschleife
Im original Quellcode ist Nur die Registrierung dann das erstellen (hab ich auch)
Und dann tbdomessageloop und das läuft
Also irgendwas mache ich ja falsch -.-
Danke

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

23.08.2011, 21:45

Eine Funktion kann nicht in einer anderen Funktion definiert sein...

9

23.08.2011, 22:07

Problem erledigt habe einen dummen Fehler gemacht.

Werbeanzeige