Mi vengono altri dubbi:

nella DLL imposto la variabile di ritorno Result di tipo Pointer generico in modo da restituire all'applicazione l'indirizzo di memoria dove il valore è stato memorizzato. Per fare ciò devo creare una variabile aggiuntiva di tipo string nella DLL che verrà usata per salvare la stringa recuperata dalla seriale e a questo punto il puntatore Result dovrà puntare all'indirizzo di quella variabile. Nell'applicazione richiamo la funzione della DLL, assegno l'indirizzo del puntatore Result ad un'altra variabile di tipo pointer, creo una variabile di tipo string a cui assegnerò il contenuto del puntatore (quindi prelevo proprio il suo contenuto e non l'indirizzo), dopodichè posso deallocare sia il buffer usato dal puntatore di ritorno della funzione (quindi Result), sia il buffer usato dalla variabile di tipo pointer dichiarata nell'applicazione (che servirebbe a recuperare l'indirizzo di memoria ritornato dalla funzione). Confermi?