webForumDet fria alternativet

Problem med pointers

5 svar · 169 visningar · startad av Nexus86

Nexus86Medlem sedan okt. 20022 683 inlägg
#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?

Peter SMedlem sedan dec. 20025 484 inlägg
#2

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)

:)

Nexus86Medlem sedan okt. 20022 683 inlägg
#3

Men hur sjutton blev m_hdcSprite en pekare? :o

HDC m_hdcSprite;

R// Denna har jag sedan kört CreateCompatibleDC till.

Peter SMedlem sedan dec. 20025 484 inlägg
#4

Hur ser anropet till CreateCompatibleDC() ut?

:)

Nexus86Medlem sedan okt. 20022 683 inlägg
#5

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.

Nexus86Medlem sedan okt. 20022 683 inlägg
#6

Jag fick till det. Felet låg någon annanstans. :r

Genererad på 368 ms · cache AV · v20260730165559-full.f96bc7eb