quarta-feira, 22 de setembro de 2021

C# - rodando dll criada em C++ padrão


Peguei um de meus códigos antigos,
à saber, um relógio digital criado
com a biblioteca graphics.h,
e encapsulei-o numa dll utilizando
uma linha de comando com o g++ do MinGw,
chamando as libs necessárias para o 
funcionamento da biblioteca graphics.h.
E tudo foi realizado como esperava,
mas o que realmente me surpreendeu
foi a facilidade de chamar este código,
não gerenciado num aplicativo de console
feito no C#, isto mesmo, não estamos
escrevendo besteiras e podemos provar
para quem duvidar, estamos rodando
uma dll criada em linguagem c++,
contendo um código que utiliza a antiga
biblioteca graphics.h, num projeto
de console do C#.
Abaixo vou postar o código que utilizei
no C#, e no link, qualquer interessado
pode ter acesso ao código do relógio
digital em C, utilizando a biblioteca graphics.h, 
mas antes veja o relógio funcionando:





using System;
using System.Runtime.InteropServices;

class PlatformInvokeTest {

    [DllImport ( "gera_dll.dll" )]

    public static extern int main ( );

    public static void Main ( ) {
        main (  );
    }
}