Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os artigos a seguir mostram as várias maneiras de fazer "interoperabilidade nativa" no .NET.
Existem alguns motivos para chamar em código nativo:
- Os sistemas operacionais vêm com um grande volume de APIs que não estão presentes nas bibliotecas de classes gerenciadas. Um exemplo privilegiado para esse cenário seria o acesso a funções de gerenciamento de hardware ou sistema operacional.
- Comunicando-se com outros componentes que têm ou podem produzir ABIs de estilo C (ABIs nativas), como código Java exposto por meio de JNI (Java Native Interface) ou qualquer outra linguagem gerenciada que possa produzir um componente nativo.
- No Windows, a maioria dos softwares instalados, como o pacote do Microsoft Office, registra componentes COM que representam seus programas e permitem que os desenvolvedores os automatizem ou usem. Isso também requer interoperabilidade nativa.
A lista anterior não abrange todas as situações e cenários potenciais em que o desenvolvedor deseja, gostaria ou precisa interagir com componentes nativos. A biblioteca de classes do .NET, por exemplo, usa o suporte de interoperabilidade nativa para implementar um número justo de suas APIs, como suporte e manipulação do console, acesso ao sistema de arquivos e outros. No entanto, é importante observar que há uma opção, se necessário.
Observação
A maioria dos exemplos nesta seção será apresentada para todas as três plataformas com suporte para .NET Core (Windows, Linux e macOS). No entanto, para alguns exemplos curtos e ilustrativos, é mostrado apenas um exemplo que usa nomes de arquivo e extensões do Windows (ou seja, "dll" para bibliotecas). Isso não significa que esses recursos não estejam disponíveis no Linux ou no macOS, isso foi feito apenas por conveniência.