Даже если у вас есть решение для редактирования вашего вопроса, я думаю, что было бы полезно проиллюстрировать, как вы можете решить подобные проблемы в будущем.
Когда компоновщик выдает ошибку, это, вероятно, означает, что вы пытаетесь сослаться на фрагмент исполняемого кода, который он не может найти. Над строкой, которую вы указали, должна была быть серия ошибок, в которых указано, какие именно функции вызывали проблему, например:
foo.obj: ошибка LNK2019: неразрешенный внешний символ _GetBitmapBits @ 12, указанный в функции ...
Вывод может немного отличаться для вашего конкретного компоновщика. Вероятно, он будет включать фразу «неразрешенный внешний». Эти ошибки и есть то, о чем @ Friend-Pal на самом деле просил.
Когда вы получаете неразрешенную внешнюю ссылку, вы исправляете ее, связываясь с соответствующей библиотекой. Чтобы определить, какую библиотеку для какой функции включить, обратитесь к документации. Например, документация для GetBitmapBits указывает внизу:
Минимально поддерживаемый клиент: Windows 2000 Professional
Минимальный поддерживаемый сервер: Windows 2000 Server
Заголовок: Wingdi.h (включая Windows.h)
Библиотека: Gdi32.lib
DLL: Gdi32.dll
Способ добавления ссылки на библиотеку зависит от используемого вами компоновщика. В вашем случае, исходя из правки вашего вопроса, это должно быть -lgdi32
для ссылки в библиотеке gdi32.lib
.
Повторяйте этот процесс, пока все ссылки не будут разрешены.
Для типов данных (HWND
, HDC
, HBITMAP
и т. Д.) Требуется только соответствующий заголовочный файл; с ними не связано никакого реального исполняемого кода, поэтому они не влияют на компоновщик.