Quais são as minhas opções para C ++ DLL para chamar a # DLL C?
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?
Solução
Os pares de opções disponíveis para você aqui
- Usar um modo misto C ++ / CLI conjunto como uma ponte entre o C ++ e C # DLL
- 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.