Allora il codice che mi hai dato l'ho modificato cosi', in modo da riportarlo ad una funzione che poi iglobo nella struttura della dll.
codice:
#include <stdio.h>
#include <stdlib.h>
#include <TCHAR.H>

void ToHex(unsigned char *p,char *s, int lungh)
{
  int i;
  for(i=0; i<lungh; i++)
    _snprintf(s+i*2, 2, "%02X", *(p+i));
  *(s+i*2)=0;
}
char *F_seriale(unsigned char *szStr, long nbytes)
{
 char *st;
 st=(char *)malloc(2*nbytes*sizeof(char));
 ToHex(szStr, st, nbytes);
 return st; 
}
     
int _tmain(int argc, _TCHAR* argv[])
{
  unsigned char szStr[] = "prova  ";
  printf("%s\n",F_seriale(szStr,sizeof(szStr) - 1));
  return 0;
}
dove chiaramente rendo pubblica la funzione F_seriale. Ho solo un dubbio per il fatto che alloco memoria per st ma poi a differenza dell'esempio non uso il free. E' corretto o si puo' migliorare? Naturalmente ora mi manca il conteggio del BCC e l'inserimento dei due codici di controllo, ma per ora gradirei una verifica Io ho l'ho provata e funziona da consolle, ma come so una cosa e' che funzioni una che non mi formatti il disco rigido .