|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
RebornX JLI'ler
Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 17.02.2008, 20:36 Titel: Statusbox... |
|
|
Hi,
weil mich die messagebox nervt, habe ich beschlossen eine statusbox zu schreiben, die mir auch recht gut gelungen ist finde ich:
statusfeld.h
Sie ist so gebaut, das ich sie in jedes Projekt mühelos einfügen kann.
Da wird beim start des programms ein zweites window geöffnet wo dann die statusbox drin ist, solange man in der WinMain CreateStatusWindow(hInstance);
aufruft.
Anschließend kann man dann mit AddText("blabla fehler blabla"); einen text in der statusbox ausgeben.
Jedoch habe ich ein kleines Problem:
Ich übe ja jetzt directX mit dem buch von Christian Rouselle und bin da schon im Kapitel 20.5 .
Da gibt es eine Direct3D Klasse, wo ich auch gern die Statusbox intigrieren will (fragt nicht warum):
Direct3D.cpp
Direct3D.h
Wenn ich jedoch da mit #include "statusfeld.h" die statusbox includieren will, damit ich auch da AddText(); nutzen kann kommt der Fehler:
Code: | 1>Direct3D.obj : error LNK2005: "struct HWND__ * __cdecl CreateStatusWindow(struct HINSTANCE__ *)" (?CreateStatusWindow@@YAPAUHWND__@@PAUHINSTANCE__@@@Z) ist bereits in Locksurface.obj definiert.
1>Direct3D.obj : error LNK2005: "long __stdcall StatusFeld(struct HWND__ *,unsigned int,unsigned int,long)" (?StatusFeld@@YGJPAUHWND__@@IIJ@Z) ist bereits in Locksurface.obj definiert.
1>Direct3D.obj : error LNK2005: "bool __cdecl AddText(char *)" (?AddText@@YA_NPAD@Z) ist bereits in Locksurface.obj definiert.
1>Direct3D.obj : error LNK2005: "struct HWND__ * hStatus" (?hStatus@@3PAUHWND__@@A) ist bereits in Locksurface.obj definiert.
1>Locksurface.obj : error LNK2005: "struct HWND__ * __cdecl CreateStatusWindow(struct HINSTANCE__ *)" (?CreateStatusWindow@@YAPAUHWND__@@PAUHINSTANCE__@@@Z) ist bereits in Direct3D.obj definiert.
1>Locksurface.obj : error LNK2005: "long __stdcall StatusFeld(struct HWND__ *,unsigned int,unsigned int,long)" (?StatusFeld@@YGJPAUHWND__@@IIJ@Z) ist bereits in Direct3D.obj definiert.
1>Locksurface.obj : error LNK2005: "bool __cdecl AddText(char *)" (?AddText@@YA_NPAD@Z) ist bereits in Direct3D.obj definiert.
1>Locksurface.obj : error LNK2005: "struct HWND__ * hStatus" (?hStatus@@3PAUHWND__@@A) ist bereits in Direct3D.obj definiert. |
Was mache ich falsch? _________________ Besucht meine Seite:
www.cpparchiv.dl.am |
|
Nach oben |
|
|
Otscho Super JLI'ler
Alter: 36 Anmeldedatum: 31.08.2006 Beiträge: 338 Wohnort: Gummibären-Gasse Medaillen: Keine
|
Verfasst am: 17.02.2008, 21:29 Titel: |
|
|
Sieht so aus als hättest du die "statusfeld.h" mehrmals in deinem Projekt eingebunden und den Kompiler nervts, dass du so oft Funktionen mit dem selben Namen und Argumetlisten schreibst, was zwangsläufig aus den oftmaligen Einbinden kommt.
Damit der Kompiler hier nichts missversteht solltest du ihm sagen, dass er deine header Datei nur einmal kompilieren braucht.
Das geht afaik durch Anweißungen wie:
oder:
CPP: | #ifndef HEY_ICH_WURDE_BEREITS_KOMPILIERT
#define HEY_ICH_WURDE_BEREITS_KOMPILIERT |
Am Anfag deiner "statusfeld.h"
Übrigens:
CPP: | LRESULT CALLBACK StatusFeld(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
default:
return DefWindowProc (hwnd, msg, wParam, lParam);
}
} |
Als Windows-prozedur zu schreiben ist kein besonders guter Stil.
Zumindest auf Nachrichten wie WM_DESTROY oder WM_PAINT solltest du schon was zu bieten haben.
Ich geh mal davon aus, dass du damit noch nicht fertig bist. |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 17.02.2008, 22:59 Titel: |
|
|
Otscho hat Folgendes geschrieben: | Sieht so aus als hättest du die "statusfeld.h" mehrmals in deinem Projekt eingebunden und den Kompiler nervts, dass du so oft Funktionen mit dem selben Namen und Argumetlisten schreibst, was zwangsläufig aus den oftmaligen Einbinden kommt.
Damit der Kompiler hier nichts missversteht solltest du ihm sagen, dass er deine header Datei nur einmal kompilieren braucht. |
Nein, der Compiler meckert hier gar nichts. Das ist der Linker. Deine Problem würde eine andere Fehlermeldung anzeigen, a la "doppelter Funktionsdefinition".
Hier beschwert sich aber der Linker über doppelte Implementationen.
Und zwar musst du in Locksurface.cpp und Direct3D.cpp dieselben Funktionen definiert haben. Was dadurch passiert, das du die Implementationen in statusfeld.h definierst. In den Header sollten nur die Deklarationen und in die statusfeld.cpp dann die Implementationen. _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
RebornX JLI'ler
Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 18.02.2008, 12:39 Titel: |
|
|
PeaceKiller hat Folgendes geschrieben: |
Hier beschwert sich aber der Linker über doppelte Implementationen.
Und zwar musst du in Locksurface.cpp und Direct3D.cpp dieselben Funktionen definiert haben. Was dadurch passiert, das du die Implementationen in statusfeld.h definierst. In den Header sollten nur die Deklarationen und in die statusfeld.cpp dann die Implementationen. |
Hmm naja ^^ wenn ich das so mache:
statusfeld.h
statusfeld.cpp
Dann kommt da der Fehler:
Code: | 1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(307) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cb'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(307) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(307) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(308) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'flags'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(308) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(308) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(474) : error C2065: 'EDITWORDBREAKPROCEX': nichtdeklarierter Bezeichner
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(474) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(474) : error C2143: Syntaxfehler: Es fehlt ';' vor '('
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(474) : error C2062: 'char'-Typ unerwartet
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(474) : error C2059: Syntaxfehler: ')'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(480) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cbSize'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(480) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(480) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(481) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'dwMask'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(481) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(481) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(482) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'dwEffects'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(482) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(482) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(483) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'yHeight'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(483) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(483) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(484) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'yOffset'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(484) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(484) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(485) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'crTextColor'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(485) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(485) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(486) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'bCharSet'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(486) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(486) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(487) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'bPitchAndFamily'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(487) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(487) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(488) : error C2065: 'LF_FACESIZE': nichtdeklarierter Bezeichner
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(493) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cbSize'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(493) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(493) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(494) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'dwMask'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(494) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(494) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(495) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'dwEffects'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(495) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(495) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(496) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'yHeight'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(496) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(496) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(497) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'yOffset'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(497) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(497) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(498) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'crTextColor'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(498) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(498) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(499) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'bCharSet'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(499) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(499) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(500) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'bPitchAndFamily'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(500) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(500) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(501) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'szFaceName'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(501) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(501) : error C2065: 'LF_FACESIZE': nichtdeklarierter Bezeichner
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(501) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(520) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'wWeight'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(520) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(520) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(521) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'sSpacing'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(521) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(521) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(522) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'crBackColor'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(522) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(522) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(523) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'lcid'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(523) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(523) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(524) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'dwReserved'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(524) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(524) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(525) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'sStyle'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(525) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(525) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(526) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'wKerning'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(526) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(526) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(527) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'bUnderlineType'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(527) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(527) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(528) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'bAnimation'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(528) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(528) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(529) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'bRevAuthor'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(529) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(529) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(534) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'wWeight'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(534) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(534) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(535) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'sSpacing'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(535) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(535) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(536) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'crBackColor'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(536) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(536) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(537) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'lcid'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(537) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(537) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(538) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'dwReserved'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(538) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(538) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(539) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'sStyle'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(539) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(539) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(540) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'wKerning'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(540) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(540) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(541) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'bUnderlineType'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(541) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(541) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(542) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'bAnimation'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(542) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(542) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(543) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'bRevAuthor'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(543) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(543) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(729) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cpMin'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(729) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(729) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(730) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cpMax'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(730) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(730) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(736) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'lpstrText'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(736) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(736) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(742) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'lpstrText'
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(742) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(742) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(755) : error C2065: 'CALLBACK': nichtdeklarierter Bezeichner
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(755) : error C2065: 'EDITSTREAMCALLBACK': nichtdeklarierter Bezeichner
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(755) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(755) : fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht möglich; Kompilierung wird abgebrochen. |
Irgendwie hat der Compiler ein problem mit der textbox ^^ _________________ Besucht meine Seite:
www.cpparchiv.dl.am |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 18.02.2008, 14:11 Titel: |
|
|
RebornX hat Folgendes geschrieben: |
Hmm naja ^^ wenn ich das so mache:
statusfeld.h
statusfeld.cpp
Dann kommt da der Fehler:
Code: | 1>c:\program files\microsoft sdks\windows\v6.0a\include\richedit.h(307) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cb' |
|
Das hört sich stark nach einem vergessenen ; nach einer Klassendefinition an, damit solltest du aber länger schon Fehler haben. In welchen Dateien inkludierst du den noch statusfeld.h bzw. richedit.h? _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
RebornX JLI'ler
Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 18.02.2008, 14:14 Titel: |
|
|
PeaceKiller hat Folgendes geschrieben: | inkludierst du den noch statusfeld.h bzw. richedit.h? |
nur in Direct3D.h .
Aber die richedit.h ist doch eine bereits vom compiler bereitgestellte header-datei ??
soll ich jetzt da gucken ob da die semikolons fehlen oder was?
edit:// da fehlen keine Semikolons^^ _________________ Besucht meine Seite:
www.cpparchiv.dl.am |
|
Nach oben |
|
|
Deviloper Junior JLI'ler
Anmeldedatum: 31.05.2006 Beiträge: 77
Medaillen: Keine
|
Verfasst am: 18.02.2008, 14:20 Titel: |
|
|
CPP: | ::HWND CreateStatusWindow(::HINSTANCE const& hInstance)
{
::WNDCLASSEX wcex = { 0 };
wcex.size = sizeof(WNDCLASSEX);
wcex.lpfnWndProc = &DefWindowProc;
wcex.hInstance = hInstance;
wcex.hIcon = ::LoadIcon(NULL, MAKEINTRESOURCE(IDI_WINLOGO));
wcex.hCursor = ::LoadCursor(NULL, MAKEINTRESOURCE(IRC_ARROW));
wcex.hbrBackground = reinterpret_cast<::HBRUSH>(::GetStockObject(WHITE_BRUSH));
wcex.lpszClassName = TEXT("StatusWindow");
wcex.hIconSm = wcex.hIcon;
if (RegisterClassEx(&wcex) != 0) return NULL;
const HWND hWnd(::CreateWindowEx(NULL, TEXT("StatusWindow"), TEXT("Status"), WS_OVERLAPPEDWINDOW | WS_VISIBLE,
500, 500, 600, 300, NULL, NULL, hInstance, NULL);
if (hWnd == NULL) return NULL;
::LoadLibrary(TEXT("Riched32.dll"));
const HWND hWndEdit(::CreateWindowEx(WS_EX_CLIENTEDGE, RICHEDIT_CLASS , TEXT(""), ES_AUTOVSCROLL | ES_MULTILINE |
ES_READONLY | WS_VISIBLE | WS_VSCROLL | WS_CHILD | WS_BORDER | WS_TABSTOP, 0, 0,
600, 300, hWnd, reinterpret_cast<::HMENU>(IDC_RE_CONTENT), hInstance, NULL));
if (hWndEdit != NULL)
::SendMessage(hWndEdit, WM_SETFONT, reinterpret_cast<WPARAM>(::GetStockObject(DEFAULT_GUI_FONT)), TRUE);
return hWndEdit;
} | einmal aufgeräumt ... du musst beachten, das VC++2005 > alle UNICODE als Default nutzen und demnach auch TEXT bzw. _T-Makro nutzen! |
|
Nach oben |
|
|
RebornX JLI'ler
Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 18.02.2008, 14:23 Titel: |
|
|
Deviloper hat Folgendes geschrieben: | einmal aufgeräumt ... du musst beachten, das VC++2005 > alle UNICODE als Default nutzen und demnach auch TEXT bzw. _T-Makro nutzen! |
Ehm ich habe auf Multi-byte eingestellt^^ _________________ Besucht meine Seite:
www.cpparchiv.dl.am |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 18.02.2008, 14:32 Titel: |
|
|
Nur mal so ein ganz bescheidener Hinweis: Ich benutze immer die Standardkonsole für Debugausgaben. Ich benutze Codeblocks und weiß daher nicht, wo man das in VC einstellen muss, aber es ist sehr praktisch (man kann damit z.B. auch ohne viel Schnickschnack schnell mal eine Eingabe einlesen). _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 18.02.2008, 15:35 Titel: |
|
|
ist der fehler behoben? wenn nicht ändere mal die Include-Reihenfolge: Erst alle Windows-Header (da oft extern "C" Deklarationen enthalten sind), dann alle STL-Header und zuletzt deine eigenen Header. Die Tatsache, dass deine Fehler erst in richedit.h und nicht schon in fstream auftreten, weist stark darauf hin.
@Otscho: Wenn du schon konsequent den globalen Namespace voranstellst, solltest du auch RegisterWindowEx nicht außenvorlassen. Wie fühlt man sich denn als globale Funktion, wenn man als einziges keinen doppelten Doppelpunkt bekommt?
Gruß DXer |
|
Nach oben |
|
|
RebornX JLI'ler
Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 18.02.2008, 16:30 Titel: |
|
|
DirectXer hat Folgendes geschrieben: | ist der fehler behoben? wenn nicht ändere mal die Include-Reihenfolge: Erst alle Windows-Header (da oft extern "C" Deklarationen enthalten sind), dann alle STL-Header und zuletzt deine eigenen Header. Die Tatsache, dass deine Fehler erst in richedit.h und nicht schon in fstream auftreten, weist stark darauf hin.
|
Hmm ne klappt auch nicht ^^ Habe grade alle möglichen positionen versucht ... doch es kommt immer die gleiche fehlermeldung ^^ _________________ Besucht meine Seite:
www.cpparchiv.dl.am |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 18.02.2008, 16:58 Titel: |
|
|
Ausversehen das SDK editiert? _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
RebornX JLI'ler
Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 18.02.2008, 17:04 Titel: |
|
|
PeaceKiller hat Folgendes geschrieben: | Ausversehen das SDK editiert? |
Ne eigentlich nicht ^^ _________________ Besucht meine Seite:
www.cpparchiv.dl.am |
|
Nach oben |
|
|
RebornX JLI'ler
Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 19.02.2008, 20:44 Titel: |
|
|
Weiß niemand eine Lösung ? _________________ Besucht meine Seite:
www.cpparchiv.dl.am |
|
Nach oben |
|
|
User_User JLI'ler
Anmeldedatum: 05.08.2004 Beiträge: 137
Medaillen: Keine
|
Verfasst am: 20.02.2008, 07:25 Titel: |
|
|
Kannst du die Quellcodedatei posten, in welcher der Aufruf von CreateStatusWindow() enthalten ist?
Ist dir klar, dass du durch die include-Anweisung von "statusfeld.h" in die Datei Direct3D.cpp eine globale Variable hStatus erzeugst? Wo wird diese Variable initialisiert? |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|