Pergunta

Eu tenho um ++ DLL C que precisa chamar uma função (passar um valor, retornar um valor) em uma biblioteca de classe C #.

É a minha única opção para dar o C # DLL um COM interface e chamá-lo de C ++ com IDispatch?

Este é o melhor método?

Foi útil?

Solução

Os pares de opções disponíveis para você aqui

  1. Usar um modo misto C ++ / CLI conjunto como uma ponte entre o C ++ e C # DLL
  2. Use a uma ponte COM expondo vários dos principais tipos C # como COM objetos. Este pode então ser acessado através do código C ++ pela semântica COM normais

Outras dicas

Este projecto Cria exportações DLL para métodos estáticos em classes. Você poderia, então, chamar um método C # estática de código não gerenciado.

Uma abordagem que poderia funcionar seria chamá-lo embora COM. Você pode usar a ferramenta Regasm para criar o COM wrapper.

Não é o única opção.

Você também poderia compilar seu C ++ DLL como uma DLL gerenciado.

Você pode hospedar seu C # DLL como um serviço e remoto para ele.

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