Salve a tutti.
Scusate per il titolo ma non c'era molto spazio...
In pratica dal visual basic richiamo uan funzione da una DLL scritta in C.
Li dentro scrivo dei dati dentro due vettori di interi passati per riferimento. Dato che sono due vettori non potevo fare un solo return e quindi ho optato per questa via.

Dichiarazione in visual basic
codice:
    Declare Sub Destinazioni_Possibili_Bianche Lib "Dama.dll" (ByVal X As Integer, ByVal Y As Integer, ByRef coordinate_x() As Integer, ByRef coordinate_y() As Integer)
Dichiarazione in c
codice:
__declspec (dllexport) void Destinazioni_Possibili_Bianche(int X, int Y, int *coordinate_x, int *coordinate_y)
Come avrete intuito serve per il gioco della dama.
nella DLL tutte le funzioni sono dentro a extern "C" se vi può servire saperlo.

Ho fatto una copia della DLL in versione "programma normale", per testare le funzioni e quella funzione mi pare che funzioni (scusate il gioco di parole).
Il problema è che quando richiamo al funzione dal visual basic
codice:
        Dim Possibili_X() As Integer
        Dim Possibili_Y() As Integer
        ReDim Possibili_X(4)
        ReDim Possibili_Y(4)
        Destinazioni_Possibili_Bianche(pedina_x, pedina_y, Possibili_X, Possibili_Y)
dal debug si vede che c'è un errore di tentativo di accedere ad una area di memoria protetta o qualcosa di simile.
Ho provato a debuggare la DLL mettendo come eseguibile il .exe della dama ma da quell'errore quando viene richiamata la funzione, ancora prima di entrarci.
probabilmente il problema è semplice da risolvere.
forse la funzione non è abbastanza standard per poter usare __declspec(dllexport).
Spero che troviate presto una soluzione.
Grazie infinite in anticipo. Cordiali saluti