Когда вы собираете программу, есть флаги компилятора для установки Unicode / MBCS, Multi / Single Threading и различных других вещей. Если вы компилируете какой-либо источник с одним набором флагов, а другой источник с другими флагами, то вы часто получаете подобные ошибки компоновщика.
Убедитесь, что во всех источниках используются одинаковые флаги, включая любые ваши собственные библиотеки.
У вас есть конкретная ошибка, которая говорит о том, что компоновщик включает двоичный файл wwincrt0.obj из библиотеки LIBCMT.lib. wwincrt0.obj ссылается на функцию wWinMain (), и компоновщик не знает, где ее найти.
LIBCMT - многопоточная версия LIBC. Вы будете ссылаться на один из них, но не на оба.
wwincrt0 - это широкая (UNICODE) версия кода запуска CRT (C Run Time), которая запустит ваш код.
WinMain () - основная функция Windows, а wWinMain () - широкая (UNICODE) версия WinMain ().
Я предполагаю, что часть вашего кода скомпилирована с флагом компилятора / MT, а часть скомпилирована с другим флагом (/ MTd, / MD, / MDd, / LD или / LDd).
Мое второе замечание: некоторые скомпилированы с / DUNICODE, а другие с /DMBCS.