Salve a tutti.
Ambiente Visual Studio 2005, opzione di compilazione /TC
Ho un progetto che produce una DLL e ha:

una struttura dati cosi' definita:

codice:
typedef struct _serialMessage {
 unsigned char lep; 
 unsigned char idt[IDT_LENGHT];
 unsigned char cid[CLUSTER_LENGHT];
 unsigned char lenPayload;
 unsigned char payload[MAX_PAYLOAD_DATA]; 
 unsigned char hotp[HOTP_LEN]; 
 unsigned char lqi; 
 unsigned char rssi; 
} serialMessage;
e un metodo cosi' definito:

codice:
__declspec(dllexport) int writeMessage(serialMessage msg);
Il prgetto compila correttamente la DLL che poi viene utilizzata in un altro progetto in cui la struttra dati e' definita come prima mentre il metodo e' dosi' definito e usato:

codice:
typedef int (*WRITEMESSAGE)(serialMessage);

WRITEMESSAGE writeMessage = (WRITEMESSAGE)GetProcAddress(hinstLib, L"writeMessage");
writeMessage(toWrite);
dove toWrite, ovviamente, e' di tipo serialMessage e hinstLib e' opportunamente definito.
La funzione writeMessage scrive un log su un file di testo e quello che noto e' che debuggando la toWrite e' correttamente valorizzata mentre nel log della writeMessage (dove i valori salvati nella toWrite vengono usati) mi stampa dei valori sbagliati, tutti a 0 come se nel passaggio come parametro della struttura dati la DLL avesse perso qualcosa.

Che puo' essere successo?

Ciao e grazie
Sandro