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

26.01.2013, 17:29

Structur Instancen in Header Datei

Hallo.
Ich möchte gerne eine Funktion auslagern, in der ein HINSTANCE Pointer erstellt wird.
Das Problem ist nur, dass HINSTANCE in der Header Datei nicht erkannt wird.
Wie kann ich das lösen?
(HINSTANCE ist eine structur, mithilfe, man Fenster Eigenschaften definieren kann.)

(HINSTANCE ist in Windows.h definiert)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

26.01.2013, 18:00

#include <Windows.h> ?

3

26.01.2013, 18:02

Hast du Windows.h auch im header includiert?

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

4

26.01.2013, 18:41

(HINSTANCE ist eine structur, mithilfe, man Fenster Eigenschaften definieren kann.)


Meine WinAPI Zeiten sind zwar schon ein wenig her, aber mein Gedächtnis und MSDN sagen da etwas anderes:

Zitat

A handle to an instance. This is the base address of the module in memory.

5

26.01.2013, 19:06

OMG :dash: :dash: :dash: wie konnte ich das übersehen. :dash: :dash: :dash:
Sorry Leute :D
:dash: :dash: :dash: :dash: :dash: :dash: :dash: :dash: :dash: :dash: :dash: :dash: :dash:

6

26.01.2013, 19:11

och ne

Jetzt habe ich nur ein 2. Problem, wobei mir jetzt nicht im geringsten einfällt, wie ich es lösen könnte.
Der makiert mir das = zeichen vor WndProc mit der Fehlermeldung:

error C2440: '=': 'LRESULT' kann nicht in 'WNDPROC' konvertiert werden


bool InitWndClassEx( WNDCLASSEX *WndClassEx, HINSTANCE hInstance, const char* szClassName, LRESULT CALLBACK WndProc )
{
WndClassEx->cbSize = sizeof( WNDCLASSEX );
WndClassEx->style = NULL;
WndClassEx->lpfnWndProc = WndProc;
WndClassEx->cbClsExtra = NULL;
WndClassEx->cbWndExtra = NULL;
WndClassEx->hInstance = hInstance;
WndClassEx->hIcon = LoadIcon (NULL, IDI_WINLOGO);
WndClassEx->hCursor = LoadCursor (NULL, IDC_ARROW);
WndClassEx->hbrBackground = (HBRUSH) GetStockObject (BLACK_BRUSH);
WndClassEx->lpszMenuName = NULL;
WndClassEx->lpszClassName = szClassName;
WndClassEx->hIconSm = LoadIcon (NULL, IDI_WINLOGO);

if( !RegisterClassEx( WndClassEx ) ){
MessageBox( NULL, "WndClassEx failed.", "Error", MB_OK | MB_ICONERROR );
return false;
}
}

Tobiking

1x Rätselkönig

  • Private Nachricht senden

7

26.01.2013, 19:32

Schau mal nach dem Stichwort Funktionspointer. Der Parameter WndProc sollte einer sein, ist es aber nicht.

Techie

Alter Hase

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

8

26.01.2013, 20:04

Und wieder so ein Thread... Junge Junge...
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

9

26.01.2013, 20:15

DuffCola, wie wär's denn, wenn Du mal anfangen würdest die Fehlermeldungen zu lesen, drüber nachzudenken, was da drin steht und dann mal nachzuschauen, warum die Meldung wohl kommt?
Es steht doch ganz klar da, dass Du ein LRESULT hast, aber WNDPROC erwartet wird. So viele Möglichkeiten für den Fehler gibt es doch da nicht. Als erstes solltest Du bei sowas nämlich mal den Typ der Variable prüfen, die Du da als Parameter übergibst.
Bitte... tu uns allen einen Gefallen: Erst denken, dann nochmal denken und erst dann posten!
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

10

26.01.2013, 20:37

ok

Danke jetzt gehts.Eigentlich hatte ich das ja acuh so geshen nur, habe ich die Fehlermldung exakt umgekehrt verstanden, sodass meine Lösungsversuche gar nicht gehen konnten.

Werbeanzeige