Возможно, потому что вы не сказали компилятору, что хотите, чтобы «неуправляемый код» компилировался в машинный код.При использовании / clr весь код компилируется в IL.У него нет проблем со стандартным кодом C ++, есть только несколько языковых конструкций, которые не поддерживаются.
Если вы смешали код в файле исходного кода, тогда вы можете использовать #pragma для переключения:
#pragma managed(push, off)
// Unmanaged code here
// ...
#pragma managed(pop)
// Your ref classes here
// ...
Это понадобится и вам, если вы #include заголовки, содержащие объявления неуправляемого кода.