Nexus86 Medlem sedan okt. 2002 3 030 inlägg Frågan 1 apr. 2004 07:18 #1 Jag verkar ha ett litet problem vad gäller pointers. Jag får iallafall inte till det.
bool LoadBitmapIntoDC(bool bMono, LPTSTR sFileName, HDC *hDC, HBITMAP *hBMP, HBITMAP *hOldBitmap)
...
if (LoadBitmapIntoDC(false, sFileName, &m_hdcSprite, &m_bmSprite, &m_bmOldSprite))
Av denna kod får jag felmeddelandet
error C2664: 'LoadBitmapIntoDC' : cannot convert parameter 3 from 'struct HDC__ ** ' to 'struct HDC__ *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Vad är felet?
P Peter S Medlem sedan dec. 2002 5 483 inlägg Det verkar som att du försöker skicka in adressen till en pekare istället för pekaren i sig:
if (LoadBitmapIntoDC(false, sFileName, [b]m_hdcSprite[/b], &m_bmSprite, &m_bmOldSprite))
Alternativt modifiera funktionens definition:
bool LoadBitmapIntoDC(bool bMono, LPTSTR sFileName, [b]HDC** hDC[/b], HBITMAP *hBMP, HBITMAP *hOldBitmap)
:)
Nexus86 Medlem sedan okt. 2002 3 030 inlägg Men hur sjutton blev m_hdcSprite en pekare? :o
HDC m_hdcSprite;
R// Denna har jag sedan kört CreateCompatibleDC till.
P Peter S Medlem sedan dec. 2002 5 483 inlägg Hur ser anropet till CreateCompatibleDC() ut?
:)
Nexus86 Medlem sedan okt. 2002 3 030 inlägg Ojdå. Jag kom på att jag inte anropar CreateCompatibleDC förrän i den funktionen jag försöker anropa så m_hdcSprite är tom. Jag har inte gjort någonting med den innan det där anropet ovan.
Nexus86 Medlem sedan okt. 2002 3 030 inlägg Jag fick till det. Felet låg någon annanstans. :r