Visual C ++: ошибка C2664: «ReleaseDC»: невозможно преобразовать параметр 1 из «HDC» в «HWND» - PullRequest
1 голос
/ 12 ноября 2011

Я хочу скомпилировать старую (1998 г.) реализацию Edge Collapse из журнала Game Developer (файл проекта сжат в «melax.zip») в Visual Studio 2008.

В строке 390 winmain.cpp я получаю следующую ошибку компиляции:

winmain.cpp(390) : error C2664: 'ReleaseDC' : cannot convert parameter 1 from 'HDC' to 'HWND' 

и снова в строке 439.

Как я могу это исправить?

Ответы [ 2 ]

7 голосов
/ 12 ноября 2011

Аргументы ReleaseDC в вызове меняются местами - он звонит ReleaseDC(hDC, hWnd), в то время как правильная подпись равна

int ReleaseDC(
  __in  HWND hWnd,
  __in  HDC hDC
);

Приятного исправления 13-летней ошибки :)

2 голосов
/ 12 ноября 2011

Указанная строка выглядит так:

ReleaseDC(hDC, hWnd);

Однако функция ReleaseDC принимает параметры в обратном порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...