Pergunta

Eu tenho alguns utilitários C ++ que gostaria de portar para o ponto de ponta. Eu queria saber se existem ferramentas para portar um aplicativo C ++ para C#?

Eu imagino que qualquer ferramenta automatizada faria uma bagunça de qualquer código, então talvez eu também deva perguntar se essa é uma boa ideia ou não?

Foi útil?

Solução

A melhor pergunta é por que você jamais apenas Código de trabalho da porta sem obter valor agregado (ou seja, novos recursos)? O esforço quase será mais difícil e levará mais tempo do que você espera. Melhor, use os muitos recursos de interop do .NET para chamar seu código C ++ de C#. Concentre -se em adicionar novos recursos em C#, mas não perca seu tempo portando código de trabalho.

Outras dicas

  1. Teclado.
  2. Rato.
  3. Monitor.
  4. Café.
  5. Pesquisa de expressão regular e substitua.

Claro, é um mercado animado. Indo de C ++ para C# dá a você algo que poderia Compilar de maneira limpa. Fazer isso realmente funcionar exige um esforço de linha a linha: "Oh Gawd, eu vou me atirar em Tomorow". Ymmv.

Isso deveria ter sido um comentário. Mas não tenho credenciais suficientes para postar um comentário. Isso não é exatamente relevante para sua pergunta. Eu pensei que será útil para você.

C ++ -> C#: O que você precisa saber para passar de C ++ para C#

Minha compania, Designs semânticos possui uma ferramenta que converte de C ++ para C#. Ele lida com as construções de idioma do núcleo de conversão de C ++ (declarações de dados/classe, instruções executáveis) para C#. A ferramenta de tradução é baseada em O kit de ferramentas de reengenharia de software DMS.

Ele precisa de personalização para lidar com construções exóticas de tradução (chamadas COM, suas APIs personalizadas, ...) para C#. Qualquer ferramenta que você possa encontrar precisará dessa personalização; Nenhuma ferramenta pronta para uso pode praticamente abordar seu conjunto completo de circunstâncias específicas.

Que tal o compilador C ++/CLI, que produz conjuntos .NET a partir do código C ++. Eventualmente, você desejará refazer os pontos de entrada para aceitar os tipos .NET (por exemplo, System::String em vez do clássico char *), mas você chegará ao .NET muito mais rápido por não usar C#. Também existem conversões automatizadas entre C ++/CLI e C#, mas somente após o código C ++ ser. System::String, generic<typename T> System::Collections::Generic::List, etc.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top