Проблема на самом деле MAKEINTRESOURCE(IDC_ARROW)
и не связана с типом mHandle
. [В сторону: я согласен, что mHandle
не должно быть size_t
, но я думаю, что это не ваша текущая проблема.]
Поскольку IDC_ARROW
определено как MAKEINTRESOURCE(32512)
, код должен фактически читать
LoadCursor(NULL, IDC_ARROW)
, а не
LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW))
Последний код завершается ошибкой, поскольку IDC_ARROW равен LPTSTR
, но MAKEINTRESOURCE()
ожидает WORD
. Это объясняет сообщение об ошибке, которое вы видите. На самом деле IDC_ARROW
уже является типом ресурса и не требует дальнейшей обработки.
Аналогично, все другие вызовы LoadCursor()
являются ошибочными.