chamando # componente c gerenciado a partir de não gerenciado c ++ código, como faço para definir configuração

StackOverflow https://stackoverflow.com/questions/1020964

  •  06-07-2019
  •  | 
  •  

Pergunta

Eu quero chamar um componente C # a partir de um c não gerenciado ++ serviço. Eu preciso itens de configuração conjunto esperado pelo componente C #. O nome deve ser configuração ser e onde ele deve ser localizado.

por exemplo. ParentFolder \ cplusplusservice.exe

anotherfolder \ csharp.dll

Eu preciso csharp.dll.config ou seu equivalente.

Obrigado,

Foi útil?

Solução

O arquivo config precisa ser nomeado o mesmo que o nome do aplicativo. Quando o código não gerenciado primeiras chamadas para o código gerenciado um AppDomain é criado que controles AppDomain que arquivo de configuração é carregado e de onde.

Você precisará copiar manualmente o arquivo config no diretório de saída e nomeá-la após o nome do aplicativo ou criar um post-build a fazê-lo.

Basicamente as mesmas regras que se aplicam ao local onde config arquivos precisam ser para aplicativos gerenciados puros aplica a aplicativos não gerenciados que código gerenciado carga.

Outras dicas

Este artigo mostra como usar arquivos de configuração com c #:

http://www.devasp.net/net/articles/display /679.html

Este artigo fornece uma visão geral chamando gerenciado c # componente de c ++ não gerenciado e vice-versa, bem como algumas classes auxiliares:

http://www.codeproject.com/KB/mcpp/unmanaged_to_managed.aspx

Depende de como o AppDomain que está hospedando o código gerenciado é criado.

Por exemplo, se você está expondo o código gerenciado como COM, ele será carregado no padrão AppDomain, eo arquivo de configuração será no mesmo diretório que o executável (ParentFolder \ cplusplusservice.exe.config no seu caso) .

Se você está criando o AppDomain, você pode controlar onde o arquivo de configuração está localizado.

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