Então Adrian, realmente o using
é apenas para o compilador entender/localizar onde está aquela dependência/dll. Se você abrir o .csproj
você vai encontrar uma serie de instruções que o compilador faz antes de realizar a compilação em si ( gerar a DLL ou o .EXE ) na pasta bin
. E quando você faz essa importação através do Visual Studio, ele cria essa "instrução" no seu .csproj
linkando as sua dll/projeto/class library/ ou qualquer outro arquivo que você necessite em execução no seu programa.
Quanto a segunda parte da sua pergunta, nunca vi o uso de DLLs em C#
para Python
ou C++
, geralmente o caminho é ao contrário, de Python
, C++
e Java
para C#
. Mas enfim falando especificamente de importação, pelo menos 2 coisas precisam sempre estar em seu código a referência ao namespace
usando o using
ou import
( dependendo da linguagem que fará a importação ) e que a DLL esteja dentro da pasta de saída da compilação ou dentro da pasta do projeto.
Tive a oportunidade de ver projetos usando C#
interagindo com bibliotecas em linguagem C
, era exatamente desse jeito: Ou colocavam o arquivo .c
compilado da biblioteca dentro da pasta bin/Debug
ou bin/Release
manualmente. Ou configuravam o Visual Studio para ler uma determinada pasta com com os arquivo da biblioteca em liguagem C
compilados e pediam para que o próprio incluisse esse arquivos na pasta de saída quando fosse compilar o projeto.
Tem um curso aqui mesmo que explica bem melhor essa parte de compilação do .NET/C# que pode ajudar a entender mais ou menos o que eu quiz explicar a respeito dos links que o Visual Studio faz para referenciar em tempo de execução no seu projeto outras bibliotecas: https://cursos.alura.com.br/course/msbuild-dotnet-cli.
Espero ter ajudado!