<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[WNDCLASSEX - Eigenschaften verursachen error C2440]]></title><description><![CDATA[<p>Guten Tag,</p>
<p>meine Wenigkeit hat sich zur Aufgabe gemacht eine eigene Klasse zu schreiben, die das erstellen eines Fenster einfacher und Übersichtlicher machen soll.<br />
Nun kommt es aber gerade bei der Klasse WNDCLASSEX und der Zuweisung der Attribute zu Fehlern, anscheinend ist eine Konvertierung nicht möglich.</p>
<p>Mein kleines Prog sieht bisher so aus:</p>
<pre><code class="language-cpp">#include &quot;D3DClass.h&quot;

INT WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd) {

	MyWndClass *MyWnd = new MyWndClass(hInstance);

	MyWnd-&gt;CreateMainWindow();

	return 0;
}
</code></pre>
<pre><code class="language-cpp">#ifndef D3DCLASS_H
#define D3DCLASS_H

#include &lt;d3d9.h&gt;
#include &lt;d3dx9.h&gt;

class MyWndClass {
public:
	MyWndClass(HINSTANCE hInstance);
	~MyWndClass();

	HWND		CreateMainWindow();
	LRESULT		CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);

	HWND		GethWnd();
	HINSTANCE	GethInstance();

private:
	HWND		m_hWnd;
	HINSTANCE	m_hInstance;
};
...

#endif
</code></pre>
<pre><code class="language-cpp">#include &quot;D3DClass.h&quot;

// DEKLARATIONEN FÜR MYWNDCLASS

MyWndClass::MyWndClass(HINSTANCE hInstance) {
	m_hInstance = hInstance;
	m_hWnd		= NULL;
}

MyWndClass::~MyWndClass() {
}

HWND MyWndClass::CreateMainWindow() {

	WNDCLASSEX wndClass = {
			sizeof(WNDCLASSEX),
			CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW | CS_OWNDC,
19:			MessageHandler,
20:			0,
21:			0,
22:			GethInstance(),
23:			LoadIcon(NULL,IDI_WINLOGO),
24:			LoadCursor(NULL,IDC_ARROW),
25:			(HBRUSH)GetStockObject(WHITE_BRUSH),
26:			NULL,
27:			&quot;MyWndClass&quot;,
28:			LoadIcon(NULL,IDI_WINLOGO)
29:	};

	RegisterClassEx(&amp;wndClass);

	m_hWnd = CreateWindowEx( 
							NULL,
							&quot;MyWndClass&quot;,
							&quot;MyD3D-Window&quot;,
							WS_OVERLAPPEDWINDOW | WS_VISIBLE,
							0, 0,
							1024, 768,
							NULL,
							NULL,
							GethInstance(),
							NULL);
}

LRESULT CALLBACK MyWndClass::MessageHandler(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam) {
	//Nachricht auswerten
	switch(msg) {
	case WM_DESTROY: { // Fenster schließen
		PostQuitMessage(0);
		return 0;
					 }
	}
		return (DefWindowProc(hwnd,msg,wParam,lParam));
}

HINSTANCE MyWndClass::GethInstance() {
	return m_hInstance;
}

HWND MyWndClass::GethWnd() {
	return m_hWnd;
}
...
</code></pre>
<p>Die Fehler sind folgende:</p>
<blockquote>
<p>D3DClass.cpp(19) : error C2440: 'initializing' : '' kann nicht in 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' konvertiert werden<br />
Keine Funktion mit diesem Namen im Gueltigkeitsbereich stimmt mit dem Zieltyp ueberein<br />
D3DClass.cpp(22) : error C2440: 'initializing' : 'struct HINSTANCE__ *' kann nicht in 'int' konvertiert werden<br />
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
D3DClass.cpp(23) : error C2440: 'initializing' : 'struct HICON__ *' kann nicht in 'int' konvertiert werden<br />
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
D3DClass.cpp(24) : error C2440: 'initializing' : 'struct HICON__ *' kann nicht in 'int' konvertiert werden<br />
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
D3DClass.cpp(25) : error C2440: 'initializing' : 'struct HBRUSH__ *' kann nicht in 'int' konvertiert werden<br />
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
D3DClass.cpp(27) : error C2440: 'initializing' : 'char [11]' kann nicht in 'struct HINSTANCE__ *' konvertiert werden<br />
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
D3DClass.cpp(29) : error C2440: 'initializing' : 'struct HICON__ *' kann nicht in 'struct HINSTANCE__ *' konvertiert werden<br />
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
Fehler beim Ausführen von cl.exe.</p>
<p>D3DClass.obj - 7 Fehler, 0 Warnung(en)</p>
</blockquote>
<p>Hoffe ihr könnt mir helfen.</p>
<p>Mit freundlichen grüßen<br />
PhiL</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/192995/wndclassex-eigenschaften-verursachen-error-c2440</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Apr 2026 10:46:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192995.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 Sep 2007 18:31:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to WNDCLASSEX - Eigenschaften verursachen error C2440 on Thu, 20 Sep 2007 18:31:08 GMT]]></title><description><![CDATA[<p>Guten Tag,</p>
<p>meine Wenigkeit hat sich zur Aufgabe gemacht eine eigene Klasse zu schreiben, die das erstellen eines Fenster einfacher und Übersichtlicher machen soll.<br />
Nun kommt es aber gerade bei der Klasse WNDCLASSEX und der Zuweisung der Attribute zu Fehlern, anscheinend ist eine Konvertierung nicht möglich.</p>
<p>Mein kleines Prog sieht bisher so aus:</p>
<pre><code class="language-cpp">#include &quot;D3DClass.h&quot;

INT WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd) {

	MyWndClass *MyWnd = new MyWndClass(hInstance);

	MyWnd-&gt;CreateMainWindow();

	return 0;
}
</code></pre>
<pre><code class="language-cpp">#ifndef D3DCLASS_H
#define D3DCLASS_H

#include &lt;d3d9.h&gt;
#include &lt;d3dx9.h&gt;

class MyWndClass {
public:
	MyWndClass(HINSTANCE hInstance);
	~MyWndClass();

	HWND		CreateMainWindow();
	LRESULT		CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);

	HWND		GethWnd();
	HINSTANCE	GethInstance();

private:
	HWND		m_hWnd;
	HINSTANCE	m_hInstance;
};
...

#endif
</code></pre>
<pre><code class="language-cpp">#include &quot;D3DClass.h&quot;

// DEKLARATIONEN FÜR MYWNDCLASS

MyWndClass::MyWndClass(HINSTANCE hInstance) {
	m_hInstance = hInstance;
	m_hWnd		= NULL;
}

MyWndClass::~MyWndClass() {
}

HWND MyWndClass::CreateMainWindow() {

	WNDCLASSEX wndClass = {
			sizeof(WNDCLASSEX),
			CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW | CS_OWNDC,
19:			MessageHandler,
20:			0,
21:			0,
22:			GethInstance(),
23:			LoadIcon(NULL,IDI_WINLOGO),
24:			LoadCursor(NULL,IDC_ARROW),
25:			(HBRUSH)GetStockObject(WHITE_BRUSH),
26:			NULL,
27:			&quot;MyWndClass&quot;,
28:			LoadIcon(NULL,IDI_WINLOGO)
29:	};

	RegisterClassEx(&amp;wndClass);

	m_hWnd = CreateWindowEx( 
							NULL,
							&quot;MyWndClass&quot;,
							&quot;MyD3D-Window&quot;,
							WS_OVERLAPPEDWINDOW | WS_VISIBLE,
							0, 0,
							1024, 768,
							NULL,
							NULL,
							GethInstance(),
							NULL);
}

LRESULT CALLBACK MyWndClass::MessageHandler(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam) {
	//Nachricht auswerten
	switch(msg) {
	case WM_DESTROY: { // Fenster schließen
		PostQuitMessage(0);
		return 0;
					 }
	}
		return (DefWindowProc(hwnd,msg,wParam,lParam));
}

HINSTANCE MyWndClass::GethInstance() {
	return m_hInstance;
}

HWND MyWndClass::GethWnd() {
	return m_hWnd;
}
...
</code></pre>
<p>Die Fehler sind folgende:</p>
<blockquote>
<p>D3DClass.cpp(19) : error C2440: 'initializing' : '' kann nicht in 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' konvertiert werden<br />
Keine Funktion mit diesem Namen im Gueltigkeitsbereich stimmt mit dem Zieltyp ueberein<br />
D3DClass.cpp(22) : error C2440: 'initializing' : 'struct HINSTANCE__ *' kann nicht in 'int' konvertiert werden<br />
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
D3DClass.cpp(23) : error C2440: 'initializing' : 'struct HICON__ *' kann nicht in 'int' konvertiert werden<br />
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
D3DClass.cpp(24) : error C2440: 'initializing' : 'struct HICON__ *' kann nicht in 'int' konvertiert werden<br />
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
D3DClass.cpp(25) : error C2440: 'initializing' : 'struct HBRUSH__ *' kann nicht in 'int' konvertiert werden<br />
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
D3DClass.cpp(27) : error C2440: 'initializing' : 'char [11]' kann nicht in 'struct HINSTANCE__ *' konvertiert werden<br />
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
D3DClass.cpp(29) : error C2440: 'initializing' : 'struct HICON__ *' kann nicht in 'struct HINSTANCE__ *' konvertiert werden<br />
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
Fehler beim Ausführen von cl.exe.</p>
<p>D3DClass.obj - 7 Fehler, 0 Warnung(en)</p>
</blockquote>
<p>Hoffe ihr könnt mir helfen.</p>
<p>Mit freundlichen grüßen<br />
PhiL</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1369625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1369625</guid><dc:creator><![CDATA[PhiL++ 1]]></dc:creator><pubDate>Thu, 20 Sep 2007 18:31:08 GMT</pubDate></item><item><title><![CDATA[Reply to WNDCLASSEX - Eigenschaften verursachen error C2440 on Fri, 21 Sep 2007 06:24:00 GMT]]></title><description><![CDATA[<p>Zeile 19: Eine normale Methode kann nicht als Funktionszeiger übergeben werden (da fehlt der Bezug zum this-Zeiger), das geht nur mit statischen Methoden oder globalen Funktionen.</p>
<p>Die übrigen Fehler könnten Folgefehler sein (das sieht so aus, als ob die einzelnen Initialisierungen sich &quot;verschoben&quot; hätten und der Compiler die beiden 0 überlesen hat).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1369835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1369835</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 21 Sep 2007 06:24:00 GMT</pubDate></item><item><title><![CDATA[Reply to WNDCLASSEX - Eigenschaften verursachen error C2440 on Fri, 21 Sep 2007 12:29:02 GMT]]></title><description><![CDATA[<p>Danke.</p>
<p>Hab die Funktion static gesetzt. Jetzt funktionierts. : )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1370110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1370110</guid><dc:creator><![CDATA[PhiL++ 1]]></dc:creator><pubDate>Fri, 21 Sep 2007 12:29:02 GMT</pubDate></item></channel></rss>