Это будет зависеть от того, как вы настроите проект. В VS2010, если я создаю новый проект через Файл-> Новый-> Проект, Visual C ++, Пустой проект, затем добавляю новый файл C ++ и копирую ваш код, он компилируется и работает просто отлично.
Если вы создали проект другого типа, возможно, он использует разные библиотеки ссылок. Попробуйте щелкнуть правой кнопкой мыши свой проект в обозревателе решений, перейдите в Свойства-> Компоновщик-> Система и установите для Подсистемы значение "Windows (/ SUBSYSTEM: WINDOWS)
API-интерфейсы Win32 старые, но по большей части они идеально подходят для программирования на Windows. Windows проделала большую работу, чтобы гарантировать, что до тех пор, пока вы будете следовать документации, старые API не изменятся. Вы все еще можете скомпилировать 16-битный код Windows 3.1 с 1992 года и запустить его на 32-битной Windows 7.
Edit:
Также может быть так, что в Properties-> C / C ++ -> Advanced у вас есть Omit Default Library Name, установленное на «Yes», вы, вероятно, хотите, чтобы оно было на «No»
Или также свойства-> Linker-> Input-> Ignore Default Libs должны быть установлены на No.