Pokud by to někoho zajímalo, tak sem už objevil kde je problém.
Pokud runtime knihovnu linkujete staticky(Multi-threaded /MT), to jest knihovna LIBCMT.lib, tak tato knihovna obsahuje funkce jako např. Concurrency::details::GlobalNode::Initialize(unsigned short,unsigned short,unsigned long) nebo Concurrency::details::RealizedChore::Initialize(void (__cdecl*)(void *),void *) a linker se nedokáže rozhodnout kterou funkci Initialize použít.
Řešením je linkovat runtime knihovnu dynamicky, což se mě moc nehodí.
Já to vyřešil, že jsem svoji funkci Initialize přejmenoval na Initialize2a def soubor změnil na Initialize = Initialize2 @1