Как упаковать файл в проект и затем извлечь на C++ в Visual Studio?
Это делается с помощью ресурсов. Последний раз работал с ресурсами года 3 назад - с текстовым файлом.
Создаете в студии файл описания ресурсов (.rc), добавляете ваш файл туда. Какие конкретно кнопки жать при этом не скажу.
Затем в коде с помощью WinAPI функций FindResource и LoadResource загружаете ресурс в память как байтовый массив.
Дальше делайте с ним, что хотите. 
Смысла сохранять файл на диск нет, т.к. потом снова будете с диска читать.
Есть три способа хранения картинки в EXE-файле.
1. Bitmap-ресурсом. Несжатая, большинство библиотек позволяют загрузить её в одну строчку.
2. Двоичным ресурсом. Сжатие возможно любое, загрузка пишется несколько дольше.
3. Массивом, const unsigned char picture[] = { };
Я не знаю, с какой библиотекой для BMP вы работаете, и надо смотреть уже по месту.
И наконец: для чего её распаковывать? Реально нужно? (Например, мне однажды нужно было распаковывать картинки, потому что не хотел писать просмотрщик графики и пользовался штатным.)
Если нужно — то куда-нибудь во временный каталог, который тоже нужно сначала получить.