Abordagem alternativa ao seu habitual P/Invoke!
Use interfaces C# para vincular ao código nativo - uso rápido e fácil da API C em código C#, em qualquer plataforma. Já se foram os dias de DllImport
quebrado e soluções alternativas irritantes para os diferentes tempos de execução.
Totalmente compatível com Mono, .NET Framework, .NET Core e .NET Standard. Compatível com mapeamento Mono DLL em todas as plataformas e tempos de execução. Configurável e adaptável.
extern
. Use sua API nativa como se fossem objetos de primeira classe.Leia os documentos ou instale via NuGet e comece.
Nullable<T>
e string
sem nenhum código extraDeclare sua interface
public interface IMyNativeLibrary
{
long MyNativeGlobal { get ; set ; }
int MyNativeMultiply ( int a , int b ) ;
void MyOtherNativeFunction ( MyStruct strct , ref MyStruct ? maybeStruct ) ;
}
Ative-o
const string MyLibraryName = "MyLibrary" ;
var activator = new NativeLibraryBuilder ( ) ;
var library = activator . ActivateInterface < IMyNativeLibrary > ( MyLibraryName ) ;
Use-o
library . MyNativeGlobal = 10 ;
var result = library . MyNativeMultiply ( 5 , 5 ) ;
var myStruct = new MyStruct ( ) ;
MyStruct ? myOtherStruct = null ;
library . MyOtherNativeFunction ( myStruct , ref myOtherStruct ) ;
Consulte o Início rápido para obter mais informações.
Baixe no NuGet!
Caso a licença da biblioteca não se enquadre no seu projeto ou produto, entre em contato conosco. Opções de licenciamento personalizado estão disponíveis e estamos sempre abertos para trabalhar em algo que se adapte a você - seja modificado, comercial ou outro.
O lançamento público do AdvancedDLSupport é licenciado sob a GNU Lesser General Public License, Versão 3 (LGPLv3). Consulte a LICENÇA para obter detalhes. Sem o apoio do movimento de código aberto, ele nunca teria existido.