Agrupando C ++ não gerenciado com C ++ / CLI - uma abordagem adequada

conforme declarado no título, desejo que minha antiga biblioteca C ++ funcione no .NET gerenciado. Penso em duas possibilidades:

1) Eu posso tentar compilar a biblioteca com / clr e tentar a abordagem "It Just Works".

2) Posso escrever um wrapper gerenciado na biblioteca não gerenciada.

Antes de tudo, quero que minha biblioteca funcione RÁPIDA, como em um ambiente não gerenciado. Portanto, não tenho certeza se a primeira abordagem não causará uma grande diminuição no desempenho. No entanto, parece ser mais rápido de implementar (não é a palavra certa :-)) (assumindo que funcionará para mim).

Por outro lado, penso em alguns problemas que podem aparecer ao escrever um invólucro (por exemplo, como envolver uma coleção STL (vector por exemplo)?) Penso em escrever um invólucro que reside no mesmo projeto que o C ++ não gerenciado - é uma abordagem razoável (por exemplo,MyUnmanagedClass eMyManagedClass no mesmo projeto, o segundo envolvendo o outro)?

O que você sugeriria nesse problema? Qual solução me proporcionará melhor desempenho do código resultante?

Agradecemos antecipadamente por quaisquer sugestões e dicas!

Felicidades