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
.