Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » error C2662

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
18.03.2006, 19:50 Uhr
Karldin Shinowa
Professional Noob


Hi habe nen neuen Fehler:
error C2662: 'GethWnd' : this-Zeiger kann nicht von 'const class CWindow' in 'class CWindow &' konvertiert werden
Durch die Konvertierung gehen Qualifizierer verloren

irgendwer ne idee was ich checken kann? wenns zuwenig info is sagt ruhig ich poste dann den code
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.03.2006, 22:43 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi geb mal kontext.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.03.2006, 10:51 Uhr
Karldin Shinowa
Professional Noob


ok. es ist eigentlich ein bissi DirectX drinnen aber ich gleube es liegt net daran dass ich da was falsch anwende:
Habe ne Klasse CWindow mit Eigenschaften und ne Klasse CDirect3D:


C++:
BOOL CDirect3D:: Init(const CWindow& Window,BOOL bWindowed=TRUE)
//Ein Window Objekt wird per Konstante Referenz übergeben
{
   this->lpD3D=Direct3DCreate9(D3D_SDK_VERSION);
   if(NULL == this->lpD3D)
   {
        return FALSE;
   }
  
   ZeroMemory(&this->PParams,sizeof(this->PParams));
  
   this->PParams.SwapEffect         = D3DSWAPEFFECT_DISCARD;
   this->PParams.hDeviceWindow    = Window.GethWnd();//hier zeigt er den Fehler
   this->PParams.Windowed           = bWindowed;
   this->PParams.BackBufferWidth   = Window.GetWidth();//hier auch
   this->PParams.BackBufferHeight  = Window.GetHeight();//hier auch
   this->PParams.BackBufferFormat = D3DFMT_A8R8G8B8;

  
    if(FAILED(lpD3D->CreateDevice(D3DADAPTER_DEFAULT,
                                     D3DDEVTYPE_HAL,
                                     Window.GethWnd(),//und weils ihm so spaß macht hier auch
                                     D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                     &this->PParams,
                                     &this->lpD3DDevice)))
    {
        
        return FALSE;
    }

   return TRUE;
}


immer im zusammenhang dass ich eine Methode von CWindow aufrufe....
hier noch die CWindow Klasse:

C++:
class CWindow
{
    private:
        HWND hWnd;
        HINSTANCE hInstance;
        int iWindowHeight;
        int iWindowWidth;
        HDC hDc;
        LPCTSTR windowName;
        WNDCLASSEX wndInfo;
        LPPAINTSTRUCT lpPaint;

    public:
        CWindow();
        ~CWindow();
                void Initialize(HINSTANCE hInstance,
                      LPCTSTR windowName,
                      int iWindowWidth,
                      int iWindowHeight);
        
        void CreateWnd();
        
        void Begin();
        void End();
        
        HDC  GethDc()const;
        HWND GethWnd()const;
        int  GetHeight()const;
        int  GetWidth()const;
        LPCTSTR GetWindowName()const;
};



PS: Man kanns auch in DirectX verschieben....
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.

Dieser Post wurde am 19.03.2006 um 10:51 Uhr von Karldin Shinowa editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.03.2006, 16:07 Uhr
xXx
Devil


joa... zeig mal die GetHWND(void) const; ....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.03.2006, 16:19 Uhr
Karldin Shinowa
Professional Noob


gleich alle 4:


C++:
HWND CWindow::GethWnd() const
{
    return this->hWnd;
}

int CWindow::GetHeight() const
{
   return this->iWindowHeight;
}
int CWindow::GetWidth() const
{
   return this->iWindowWidth;
}
  
LPCTSTR CWindow::GetWindowName() const
{
    return this->windowName;
}


--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
27.03.2006, 13:35 Uhr
Karldin Shinowa
Professional Noob


Fällt einem hier vllt noch was ein? plz
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
27.03.2006, 13:37 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


für was das const bei den Funktionen? das ist auch das was deinen fehler erzeugt. das Programm MUSS ja auf die Variablen zugreifen dürfen.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
27.03.2006, 14:06 Uhr
Karldin Shinowa
Professional Noob


alle getMethoden greifen auf variablen zu da sie aber nichts verändern--> const.
Wenn sie nicht const wären wäre

C++:
BOOL CDirect3D:: Init(const CWindow& Window,BOOL bWindowed=TRUE)
//Ein Window Objekt wird per Konstante Referenz übergeben
{
   //...
   this->PParams.SwapEffect         = D3DSWAPEFFECT_DISCARD;
   this->PParams.hDeviceWindow    = Window.GethWnd();//hier zeigt er den Fehler<---
   this->PParams.Windowed           = bWindowed;
   this->PParams.BackBufferWidth   = Window.GetWidth();//hier auch<---
   this->PParams.BackBufferHeight  = Window.GetHeight();//hier auch<---
   this->PParams.BackBufferFormat = D3DFMT_A8R8G8B8;
   //...
}


bei den gekenzeichneten Zeilen nicht möglich weil ich auch ein constantes objekt zugreife durch die Übergabe per konstante Referenz....
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
27.03.2006, 18:43 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja das ist natürlich schlecht, denn deine Windowed usw ist nicht konstant.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
27.03.2006, 20:23 Uhr
Karldin Shinowa
Professional Noob


ändern tuts auch nichts wenn ich const weggebe.... konzentrieren wir uns also wieder auf das Problem... er will was casten und kann es nicht und verstehe nicht was er will....
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: