Come chiamare una funzione VB.NET da DLL Fortran

January 19

Il .Net Framework ha introdotto un cambiamento di paradigma nella programmazione di computer lontano da utilizzando librerie a collegamento dinamico attuali, DLL, di utilizzare il codice gestito type-safe. Questo cambiamento, a prima vista, è necessario che tutte le risorse dell'applicazione .NET essere ricodificati come DLL .NET. Tuttavia, in uno sforzo per garantire la compatibilità, Microsoft ha introdotto un metodo da chiamare librerie scritte in lingue al di fuori del framework .NET. Il metodo è noto come piattaforma Invoke, spesso abbreviato in P / Invoke.

istruzione

1 Aggiungere una dichiarazione "Importa" per la sezione di intestazione del codice di programma chiamando i servizi di interoperabilità. Per esempio:

Importa System.Runtime.InteropServices

2 Aggiungere un attributo DLL alla sezione di codice in questione. Esempio di codice:

<DllImport ( "User32.dll")>

3 Creare un prototipo di funzione che verrà utilizzato per chiamare la funzione all'interno della DLL. Questo serve come modello per il compilatore conosce la firma della funzione chiamata. Questo prototipo contiene un nome di funzione utilizzato per fare riferimento alla funzione DLL all'interno dell'applicazione .NET, e tipi di variabili. Per esempio:

Inoltre (ByVal firstNumber as Integer, ByVal secondo numero come numero intero)

Questo dice al compilatore che il P / Invoke la funzione di essere di riferimento si chiamerà "aggiunta" all'interno del codice del programma, ed è negli ultimi due variabili intere che sono denominati "firstInteger" e "secondInteger" all'interno del codice .NET. La funzione può ora essere chiamato come da una qualsiasi altra funzione.

Consigli e avvertenze

  • L'intestazione attributo DLL ha molti interruttori che possono essere utilizzati come necessario. Per la maggior parte le DLL di Windows Win32, non vi è alcuna necessità di switch aggiuntivi; tuttavia, file DLL privati ​​possono richiedere la specifica di diversi fattori.
  • P / Invoke è spesso difficile da formattare correttamente e mettere in atto a causa del requisito che interagiscono con molti diversi tipi di linguaggi. Esistono molte applicazioni "P automatico / Invoke" in grado di generare il codice necessario per un programmatore proprio per questo motivo.